Il codice ASCII

L'unico alfabeto standard universalmente disponibile in tutti i computer moderni è lo ASCII, che definisce le 96 lettere che appaiono sulla tastiera americana. Quindi le ventisei lettere maiuscole dell'alfabeto inglese, più le ventisei minuscole; le dieci cifre da zero a nove; i trentun codici di controllo; più una certa quantità di simboli di interpunzione e, ovviamente, lo spazio bianco.

Tutti i computer sono d'accordo nel codificare la A maiuscola col numero "65" (ricordate che un calcolatore a livello di circuiti sa solo calcolarequindi internamente le lettere vanno rappresentate da numeri). Lo ASCII definisce 128 simboli, numerati da 0 a 127: ci sono dentro i 96 alfanumerici citati più 32 "caratteri di controllo" che ereditiamo dall'era dei terminali.

Forse, guardando la tastiera del vostro calcolatore, vi sarete chiesti perché mai ci abbiano messo un tasto chiamato Ctrl (cioè "controllo"). La risposta: serve a controllare la vostra telescrivente. I primi trentun codici ASCII sono appunto riservati al controllo. Il settimo, per esempio, serve a far suonare il campanellino. La lettera "G" è la settima lettera dell'alfabeto e per questo motivo si suppone che chi vuole fare trillare la sua telescrivente digiti il tasto Ctrl e insieme ad esso il tasto G. Nel primo personal distribuito commercialmente in Italia, lo Apple II Europlus del 1979, la pressione di control-g faceva effettivamente emettere un "bip" all'altoparlante. Altri due caratteri di controllo molto importanti erano l'andata a capo (Control-M) e l'avanzamento di una riga in avanti (Control-L). Nelle telescriventi questi due codici seguivano inevitabilmente ogni punto e a capo, perché il primo riportava la testina stampante sulla colonna di estrema sinistra e il secondo faceva scorrere il foglio di carta. Ancora adesso, nella maggior parte dei calcolatori moderni la pressione di Control-L sulla tastiera fa scorrere il testo in avanti e su alcuni la pressione di Control-M è equivalente al tasto di Invio. Anche se le telescriventi sono estinte da tempo, ancora oggi su tutti i PC basati su Windows, all'interno dei documenti di testo, il punto e a capo è seguito dalla coppia Control-M e Control-L. Potete verificarlo con facilità: aprite il Notepad, scrivete "ciao", andate a capo, ancora "ciao", registrate il documento su disco e guardate quanto spazio occupa. Scoprirete una dimensione di dieci caratteri, otto per le due parole "ciao" e altri due per andare a capo e... far scorrere il foglio di carta.

Il codice ASCII è stato inventato in America per l'uso da parte degli statunitensi che scrivono in inglese, proprio come l'originale alfabeto latino era stato progettato su misura per i nostri antenati della Roma imperiale. Il codice ASCII non è adatto a rappresentare tutti quei simboli che sono utilizzati quotidianamente da decine di milioni di persone che pure leggono e scrivono sulla base di una delle varianti dell'alfabeto latino: mancano le sei lettere speciali del turco, la _ del polacco, la ß o la ü del tedesco, la ñ dello spagnolo e naturalmente le àèìòù che sono indispensabili all'italiano... eccetera eccetera. Era impossibile fare spazio, all'interno del codice ASCII, ai simboli che mancavano. Qualcuno per la verità ci provò, rimuovendo quei simboli che parevano men che indispensabili, come per esempio la barra verticale |, la chiocciolina @ e le parentesi graffe. Ma non era una soluzione. Prese invece piede l'idea di estendere il codice ASCII, utilizzando i numeri dal 128 al 255 per rappresentare i simboli in più. Soluzione, di per sé, tutt'altro che balzana. Aveva dalla sua parecchi vantaggi, primo tra tutti il fatto che i moderni calcolatori trovano comodissimo lavorare con gruppi di duecentocinquantasei numeri. Il 256 è una potenza di due, e alle macchine binarie le potenze di due risultano particolarmente naturali. Ma non solo: 256 è uguale a due elevato alla ottava potenza: cioè due elevato a una potenza che è a sua volta una potenza del due. Le informazioni codificate con numeri da 0 a 255 sono così comuni nei PC che noi misuriamo la capacità di memoria di quelle macchine proprio usando come unità lo spazio necessario per memorizzarne una, e cioè il byte. Il rovescio di questa particolare medaglia tecnologica sta nel fatto che l'estensione del codice ASCII avvenne in modo spontaneo, non studiato a tavolino e assolutamente non standard.