L'American Standard Code for Information Interchange (ASCII) è uno standard di codifica dei caratteri utilizzato nei computer e nei dispositivi elettronici per rappresentare il testo. Sviluppato all'inizio degli anni '1960, ASCII è stato inizialmente progettato per le apparecchiature di telecomunicazione. Successivamente divenne uno degli standard di codifica più utilizzati per rappresentare lettere, numeri e codici di controllo nei computer e in altri dispositivi digitali.
ASCII utilizza un codice binario a 7 bit per rappresentare 128 caratteri diversi. Ciò include 33 caratteri di controllo non stampabili (che controllano il modo in cui viene elaborato il testo) e 95 caratteri stampabili, incluso l'alfabeto inglese (sia lettere maiuscole che minuscole), cifre (0-9), segni di punteggiatura e alcuni altri simboli.
Una breve panoramica storica dell'ASCII
All'inizio degli anni '1960, un comitato guidato da Robert W. Bemer sviluppò ASCII per standardizzare il modo in cui i computer rappresentano lettere, numeri e alcuni caratteri di controllo e facilitare la comunicazione tra diversi dispositivi e sistemi.
Nel 1963, l'American Standards Association (ora ANSI, American National Standards Institute) pubblicò per la prima volta ASCII come standard per le apparecchiature di telecomunicazione e informatiche. Cinque anni dopo, fu rilasciata una versione rivista, che aggiungeva lettere minuscole e più caratteri di controllo, espandendo l'ASCII per diventare più versatile e adatto a una gamma più ampia di applicazioni.
Negli anni '1970 e '1980, l'ASCII venne ampiamente adottato su varie piattaforme e tecnologie, affermandosi come lo standard de facto per i file di testo nei computer e in Internet. La sua semplicità ed efficienza lo rendevano ideale per i primi sistemi informatici, che avevano una potenza di elaborazione e una capacità di archiviazione limitate. L'Organizzazione Internazionale per la Standardizzazione (ISO) ha adottato ASCII nel 1986 come parte dello standard ISO/IEC 646, rafforzando il suo status di standard internazionale.
Mentre ASCII è 7-bit il design era sufficiente per i caratteri inglesi, mancava il supporto per altre lingue e simboli speciali. Questa limitazione ha portato allo sviluppo di ASCII esteso e altri schemi di codifica, come ISO 8859-1 (Latin-1), per accogliere caratteri di altre lingue. L'avvento della codifica Unicode e UTF-8 all'inizio degli anni '1990 ha risolto i limiti dell'ASCII fornendo un set di caratteri universale che include tutti i caratteri e i simboli conosciuti di ogni sistema di scrittura nel mondo pur essendo compatibile con ASCII.
Perché ASCII è importante?
ASCII ha un ruolo fondamentale nell'informatica e nella comunicazione digitale per diversi motivi, tra cui:
- Codifica standardizzata. ASCII ha fornito un modo coerente di codificare i caratteri, consentendo una rappresentazione uniforme dei dati su diversi dispositivi e sistemi.
- Efficienza e semplicità. Con il suo design a 7 bit, ASCII era efficiente e semplice, rendendolo adatto ai primi computer, che avevano potenza di elaborazione e spazio di archiviazione limitati. La codifica dei caratteri in questo modo ha consentito lo sviluppo delle prime interfacce basate su testo, linguaggi di programmazione e formati di file.
- Interoperabilità. L'adozione diffusa di ASCII lo ha reso un linguaggio comune per computer e dispositivi. Questa interoperabilità è stata cruciale per la crescita di Internet e lo scambio di informazioni tra diverse piattaforme e tecnologie.
- Eredità e compatibilità. Molti schemi di codifica moderni, come UTF-8, sono realizzati con compatibilità all'indietro con ASCII. I sistemi che utilizzano questi standard più recenti possono comunque comprendere ed elaborare i dati con codifica ASCII, garantendo la longevità e l'usabilità del contenuto con codifica ASCII.
- Base per un ulteriore sviluppo. ASCII ha aperto la strada allo sviluppo di standard di codifica più completi come Unicode, che include una gamma più ampia di caratteri per adattarsi a più lingue e simboli. Unicode estende l'idea di base dell'ASCII su scala globale, consentendo la rappresentazione del testo praticamente in tutte le lingue scritte.
- Valore educativo. Imparare l'ASCII è spesso un punto di partenza per studenti e nuovi programmatori per comprendere meglio la codifica dei caratteri, la rappresentazione binaria dei dati e la storia dell'informatica. Pone le basi per argomenti più complessi di informatica e tecnologia dell'informazione.
Come funziona l'ASCII?
ASCII funziona assegnando un codice binario univoco a 7 bit a ciascun carattere del suo set, consentendo a computer e dispositivi elettronici di rappresentare e manipolare il testo utilizzando dati binari. Questo schema a 7 bit consente 128 combinazioni distinte (2^7) corrispondenti ai 128 caratteri univoci dello standard ASCII. Questi caratteri includono 33 caratteri di controllo (non stampabili), che gestiscono la formattazione del testo e il controllo della trasmissione, e 95 caratteri stampabili, che comprendono l'alfabeto inglese (in maiuscolo e minuscolo), le cifre (0-9), i segni di punteggiatura e una selezione di caratteri simboli speciali.
Rappresentare i caratteri come numeri binari consente un'elaborazione, un'archiviazione e una trasmissione efficienti di informazioni testuali in formato digitale, garantendo l'uniformità tra diversi sistemi informatici e di telecomunicazione. Quando un utente preme un tasto su una tastiera, il corrispondente codice binario ASCII viene generato e inviato al computer, che poi lo elabora come carattere designato. Questo sistema è alla base della creazione, visualizzazione e scambio di testo nella maggior parte dei sistemi informatici, costituendo la base per formati di file, protocolli di trasmissione dati e linguaggi di programmazione.
Caratteri ASCII
ASCII definisce 128 caratteri, suddivisi in due gruppi principali: caratteri di controllo (non stampabili) e caratteri stampabili. Ogni carattere è rappresentato da un numero a 7 bit, compreso tra 0 e 127. Di seguito è riportato un elenco semplificato e la spiegazione di questi caratteri:
Caratteri di controllo (0–31 e 127)
I caratteri di controllo non sono stampabili. Sono utilizzati per controllare il flusso o il formato del testo nei dispositivi e nelle comunicazioni:
0-31: Vari codici di controllo vengono utilizzati per la formattazione del testo o il controllo del dispositivo. Esempi inclusi:
- 0 (NUL, Nullo): Utilizzato come terminatore di stringa nei linguaggi di programmazione.
- 7 (BEL, Campana): Fa sì che il dispositivo emetta un avviso acustico.
- 8 (BS, Indietro): Sposta il cursore indietro di una posizione.
- 9 (TAB, Tab Orizzontale): Sposta il cursore alla tabulazione successiva.
- 10 (LF, Avanzamento riga): Sposta il cursore verso il basso alla riga successiva.
- 13 (CR, Ritorno a capo): Sposta il cursore all'inizio della riga.
- 27 (ESC, Fuga): Utilizzato per avviare sequenze di fuga.
127 (DEL): Originariamente progettato per indicare la cancellazione di un carattere
Caratteri stampabili (32–126)
I caratteri stampabili includono lettere, cifre, segni di punteggiatura e alcuni simboli speciali:
- 32 (Spazio): Uno spazio vuoto nel testo.
- 33-47: Include punteggiatura e simboli come !, ", #, $, %, &, ', (, ), *, +, ,, -, ., /.
- 48-57: Rappresenta le cifre 0 a 9.
- 58-64: Punteggiatura e simboli aggiuntivi inclusi :, ;, <, =, >, ?, @.
- 65-90: Lettere maiuscole A a Z.
- 91-96: Inclusioni [, \, ], ^, _e apice inverso `.
- 97-122: Lettere minuscole a a z.
- 123-126: Simboli {, |, } e ~.