Ogni processore, dal più piccolo microcontrollore al server più potente, è costruito con porte logiche: AND, OR, NOT e loro combinazioni. Il fatto che il ragionamento logico si possa trasformare in un circuito elettrico non è ovvio. È il risultato di due passaggi separati da quasi un secolo: l'algebra di George Boole, a metà Ottocento, e la tesi di Claude Shannon, nel 1937.
George Boole e l'algebra della logica
George Boole era un matematico inglese in gran parte autodidatta, che divenne professore al Queen's College di Cork, in Irlanda. Nel 1847 pubblicò The Mathematical Analysis of Logic e nel 1854 l'opera più completa, An Investigation of the Laws of Thought.
L'idea di fondo
Dai tempi di Aristotele la logica era studiata come una disciplina verbale, fatta di sillogismi. Boole propose di trattarla come un'algebra. Le proposizioni diventano variabili che possono assumere due soli valori, che possiamo indicare con 1 (vero) e 0 (falso). Le parole «e», «o», «non» diventano operazioni con regole precise.
- AND (e): x · y vale 1 solo se entrambe le variabili valgono 1.
- OR (o): x + y vale 1 se almeno una delle due vale 1.
- NOT (non): il complemento di x vale 1 se x vale 0, e viceversa.
Una proprietà curiosa di questa algebra è che x · x = x: affermare due volte la stessa cosa non aggiunge nulla. Nell'algebra ordinaria vale solo per 0 e 1, ed è proprio questo che collega la logica di Boole a un sistema con due soli valori.
Le tavole di verità
Il modo più chiaro per descrivere queste operazioni è una tavola che elenca tutte le combinazioni:
| x | y | x AND y | x OR y | NOT x |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 1 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 0 |
| 1 | 1 | 1 | 1 | 0 |
Negli stessi anni Augustus De Morgan formulò le leggi che portano il suo nome: negare un AND equivale a fare l'OR delle negazioni, e viceversa. Chi scrive codice le usa ogni giorno, spesso senza saperlo, quando riscrive una condizione come not (a and b) nella forma (not a) or (not b).
Per decenni l'algebra di Boole rimase un argomento di logica e filosofia della matematica, senza applicazioni pratiche evidenti.
Claude Shannon e i relè
Nel 1937 Claude Shannon, giovane studente al MIT, completò la tesi di master intitolata A Symbolic Analysis of Relay and Switching Circuits, pubblicata l'anno successivo. Shannon aveva lavorato all'analizzatore differenziale di Vannevar Bush, un calcolatore analogico controllato da circuiti di relè molto complicati, e conosceva l'algebra di Boole dagli studi di matematica.
L'intuizione
Shannon notò che un interruttore ha due stati, aperto o chiuso, esattamente come una variabile booleana. E che la disposizione degli interruttori corrisponde alle operazioni:
- Due interruttori in serie: la corrente passa solo se entrambi sono chiusi. È un AND.
- Due interruttori in parallelo: la corrente passa se almeno uno è chiuso. È un OR.
- Un contatto normalmente chiuso, che si apre quando il relè è attivato, realizza un NOT.
Da qui seguiva una conseguenza potente: qualsiasi circuito di commutazione si può descrivere con un'espressione booleana, e quell'espressione si può semplificare con le regole dell'algebra. Un circuito con molti relè poteva essere sostituito da uno equivalente con meno componenti, dimostrando matematicamente che il comportamento restava identico.
Un esempio pratico
Pensiamo a una lampada sulle scale, comandata da due interruttori, uno in basso e uno in alto. La lampada deve cambiare stato ogni volta che si agisce su uno dei due. La funzione è un OR esclusivo (XOR): la lampada è accesa quando i due interruttori sono in posizioni diverse.
In forma booleana: L = (A AND NOT B) OR (NOT A AND B).
Il comune impianto con deviatori è la realizzazione fisica di questa espressione. Shannon fornì il metodo per passare in modo sistematico da una specifica come questa al circuito, e dal circuito alla sua versione più semplice.
Dalla tesi ai computer
La tesi di Shannon trasformò la progettazione dei circuiti da arte empirica a disciplina matematica. In pochi anni le stesse idee furono applicate ai relè dei primi calcolatori elettromeccanici, poi alle valvole, quindi ai transistor e ai circuiti integrati. Cambiava la tecnologia, ma la logica restava quella di Boole.
Shannon non si fermò qui. Nel 1948 pubblicò un articolo sulla teoria matematica della comunicazione che fondò la teoria dell'informazione e rese popolare il termine «bit». Ma la tesi del 1937 basterebbe da sola a garantirgli un posto nella storia dell'informatica.
Perché conta ancora
Ogni volta che un programmatore scrive una condizione in un if, usa l'algebra di Boole. Ogni volta che un compilatore semplifica un'espressione logica, applica le stesse leggi. Ogni volta che un progettista di hardware sintetizza un circuito da una descrizione, segue il percorso indicato da Shannon. È uno dei rari casi in cui una teoria astratta, nata senza alcuno scopo pratico, è diventata il fondamento di un'intera industria.
In sintesi
- George Boole, con le opere del 1847 e del 1854, trasformò la logica in un'algebra con due valori e operazioni come AND, OR e NOT.
- Nel 1937 Claude Shannon mostrò che i circuiti di interruttori e relè seguono esattamente l'algebra di Boole.
- Interruttori in serie realizzano un AND, in parallelo un OR: ogni circuito si può descrivere e semplificare con le regole booleane.
- Questa corrispondenza è alla base di tutti i circuiti digitali, dai relè ai microprocessori.