Due parole sulle ragioni storiche e tecnologiche che hanno spinto i progettisti dei calcolatori a utilizzare solo due simboli per rappresentare ed elaborare l'informazione.

La prima l'abbiamo già vista: usare due simboli rende il codice più robusto, cioè meno soggetto ad essere "corrotto" dal rumore.

La seconda ha a che fare con i dispositivi elettronici elementari che vengono utilizzati per elaborare l'informazione: i transistor. Questi, in certe condizioni di funzionamento, si possono descrivere essenzialmente come degli "interruttori comandati" e ciascuno di essi può quindi essere, in un certo momento, o "aperto" o "chiuso".

Ma come è possibile elaborare l'informazione usando dispositivi così semplici?

Innanzitutto, per capire cosa sia un interruttore comandato, considera cosa succede quando cambi la posizione di un interruttore della luce da aperto (circuito interrotto, non passa corrente) a chiuso (passa corrente): una particolare luce (chiamiamola L1) si accende!

Ora, immagina un interruttore fotosensibile che, quando veda accendersi L1, si porti anche lui nella posizione chiuso, e accenda una certa luce L2. Agendo sul primo interruttore, mettiamo in moto un meccanismo che accende prima L1, e poi L2.

Ora, immagina che ci siano anche altri tipi di interruttori "comandati", che si chiudono, per esempio, solo quando vedono altre due particolari luci accese (chiamiamo AND interruttori di questo tipo), e interruttori che si aprono quando vedono una certa luce accesa, e si chiudono quando la vedono spenta (chiamamo questi NOT).

Una cosa interessante è che queste coppie interruttore-luce possono essere combinate tra di loro in molti modi diversi, consentendo di ottenere dei circuiti, nei quali manipolando alcuni ingressi (la posizione di certi interruttori), si mette in moto un meccanismo che porta alcune luci ad assumere certi valori interessanti.

Ebbene, i transistor funzionano esattamente così, solo che invece della luce gli interruttori controllano, e sono controllati, dalla tensione elettrica in certi punti del circuito, facendola variare tra due possibili livelli.

Ma cosa c'entra il codice binario? Beh, nota come lo stato sia degli interruttori che delle luci sia descrivibile con cifre '0' e '1' che possono rappresentare, per gli interruttori le posizioni aperto e chiuso e per le luci lo stato acceso e spento.

Ma che tipo di elaborazioni posso fare, utilizzando questa tecnologia?

Per rispondere, considera un circuito molto semplice (si realizza con pochi transitor): quello che accende una luce (alza una tensione) in uscita quando i due interruttori in ingresso sono chiusi, e la spegne (abbassa la tensione) in ogni altro caso. Come abbiamo visto, questo notevole circuito si chiama AND e si indica tipicamente con questo simbolo:

AND

A seconda dello stato di A e B, lo stato dell'uscita O vale:

c1 c2 c3
Interruttore di comando A Interruttore di comando B Interruttore comandato out
Aperto Aperto Buio
Aperto Chiuso Buio
Chiuso Aperto Buio
Chiuso Chiuso Luce

La tabella che descrive il valore dell'uscita in funzione di tutte le combinazioni di valori in ingresso si chiama tabella di verità, ed è una rappresentazione completa della funzionalità del circuito. (Piccolo esercizio: quante righe avrebbe la tabella della verità di un circuito con 3 ingressi? E di uno con 10? Ora dovresti essere in grado di rispondere!)

Sei d'accordo sul fatto che ogni elaborazione che potremmo voler fare tra sequenze di bit si può esprimere con una tabella di verità?

Ora, il funzionamento di un circuito come l'AND è in qualche modo assimilabile a qualcosa che succede nel linguaggio... considera questa affermazione: "Oggi c'è il sole e ieri pioveva". Per essere vera, deve essere vero sia che "oggi c'è il sole" sia che "ieri pioveva". La relazione tra la verità delle due affermazioni elementari e quella della frase composta è la stessa che nel nostro circuito AND lega posizioni degli interruttori in ingresso e luce in uscita!

La scienza che studia le regole con cui la verità o falsità di affermazioni semplici si compone in discorsi complessi si chiama logica. Ebbene, la logica era già molto sviluppata quando è stato inventato il transistor, e tra i suoi notevoli risultati c'era questo: qualsiasi formula logica, rappresentata dalla corrispondente tabella di verità, può essere espressa usando solo pochissime strutture (connettivi) elementari. In particolare, usando anche solo strutture di tipo AND e strutture di tipo NOT.

Quindi: se sappiamo codificare l'informazione in binario, possiamo usare i transistor per costruire circuiti che implementano qualsiasi tipo di elaborazione!