Charles Babbage, matematico inglese nato nel 1791, è spesso chiamato il «padre del computer». La definizione è un po' generosa, perché nessuna delle sue macchine fu completata mentre era in vita. Ma il suo secondo progetto, la macchina analitica, conteneva già l'organizzazione logica di un calcolatore moderno, più di un secolo prima che l'elettronica la rendesse realizzabile.
Il problema delle tavole numeriche
Nel primo Ottocento navigazione, astronomia, ingegneria e finanza dipendevano da tavole stampate: logaritmi, funzioni trigonometriche, posizioni astronomiche. Queste tavole venivano calcolate a mano da persone chiamate, appunto, calcolatori, poi copiate, composte in tipografia e stampate. Ogni passaggio poteva introdurre errori, e un errore in una tavola nautica poteva avere conseguenze molto concrete.
L'idea di Babbage era eliminare l'intervento umano in tutta la catena: una macchina che calcolasse i valori e li stampasse direttamente.
La macchina differenziale
Nel 1822 Babbage presentò il progetto di una macchina capace di calcolare tavole di polinomi con il metodo delle differenze finite. Il vantaggio di questo metodo è che richiede soltanto addizioni, operazioni facili da meccanizzare.
Il metodo con un esempio
Prendiamo la funzione f(x) = x². I suoi valori per x = 1, 2, 3, 4 sono 1, 4, 9, 16. Le differenze tra valori successivi sono 3, 5, 7. Le differenze di queste differenze sono sempre 2.
| x | f(x) | Prima differenza | Seconda differenza |
|---|---|---|---|
| 1 | 1 | 3 | 2 |
| 2 | 4 | 5 | 2 |
| 3 | 9 | 7 | 2 |
| 4 | 16 |
Conoscendo il valore iniziale e le differenze iniziali, si ottiene ogni nuovo valore con due somme: si aggiunge 2 alla prima differenza, poi la nuova prima differenza al valore precedente. Per un polinomio di grado più alto servono più colonne di differenze, ma il principio non cambia. La macchina di Babbage era, in sostanza, una serie di colonne di ruote che si sommavano l'una all'altra.
Perché non fu completata
Il progetto ottenne finanziamenti dal governo britannico e la costruzione fu affidata all'ingegnere Joseph Clement. La lavorazione richiedeva una precisione meccanica ai limiti delle capacità dell'epoca. Dopo anni di lavoro, costi crescenti e una disputa con Clement, i lavori si fermarono nel 1833. Ne rimase un frammento funzionante, che Babbage usava per dimostrazioni nel suo salotto.
La macchina analitica
Fermo il primo progetto, Babbage ebbe un'idea molto più ambiziosa: non una macchina per un solo tipo di calcolo, ma una macchina generale, capace di eseguire qualsiasi sequenza di operazioni aritmetiche.
Un'architettura sorprendentemente moderna
La macchina analitica era divisa in parti con funzioni distinte:
- Il magazzino (store): colonne di ruote che conservavano i numeri, l'equivalente della memoria.
- Il mulino (mill): l'unità che eseguiva le operazioni aritmetiche, l'equivalente dell'unità di calcolo del processore.
- Le schede perforate: ispirate al telaio Jacquard, servivano a fornire sia le operazioni da eseguire sia i dati e gli indirizzi delle variabili.
- L'uscita: una stampante e la possibilità di perforare schede con i risultati.
Il progetto prevedeva inoltre la possibilità di ripetere sequenze di schede e di scegliere il proseguimento in base a un risultato. Sono, in forma meccanica, i cicli e i salti condizionati: proprio ciò che mancava al telaio Jacquard e che distingue un computer da una semplice calcolatrice.
Una macchina mai costruita
Babbage continuò a perfezionare i disegni per il resto della vita, ma la macchina analitica non fu mai costruita. Era enorme, complicatissima e non trovò finanziamenti. Il figlio Henry, dopo la morte del padre, assemblò una parte del mulino. Il progetto nel suo insieme rimase sulla carta.
La rivincita: la Difference Engine No. 2
Tra il 1847 e il 1849 Babbage progettò una versione migliorata della macchina differenziale, più semplice grazie all'esperienza maturata con quella analitica. Anche questa non fu costruita.
Più di un secolo dopo, lo Science Museum di Londra decise di realizzarla seguendo fedelmente i disegni originali e usando tolleranze compatibili con la tecnologia ottocentesca. La parte di calcolo fu completata nel 1991, per il bicentenario della nascita di Babbage, e funzionava. La stampante fu completata alcuni anni dopo. L'esperimento dimostrò che il progetto era corretto: ciò che era mancato non erano le idee, ma organizzazione, fondi e costanza.
Che cosa resta di Babbage
L'eredità di Babbage è soprattutto concettuale. I pionieri dell'elettronica degli anni Quaranta, in gran parte, non partirono dai suoi lavori. Eppure l'organizzazione che proponeva, con memoria e unità di calcolo separate, istruzioni fornite dall'esterno e controllo del flusso, è la stessa che si sarebbe imposta.
C'è anche una lezione pratica, che chiunque gestisca progetti tecnici riconosce. Babbage cambiava continuamente il progetto per migliorarlo, prima di averne completata una versione. È un rischio che esiste ancora: la ricerca della versione perfetta può impedire di consegnarne una funzionante.
In sintesi
- La macchina differenziale, proposta nel 1822, calcolava tavole di polinomi usando solo addizioni con il metodo delle differenze finite.
- La costruzione si fermò nel 1833 per costi e problemi tecnici e organizzativi.
- La macchina analitica separava memoria (magazzino) e calcolo (mulino) e usava schede perforate, cicli e scelte condizionate.
- Nel 1991 lo Science Museum di Londra completò la parte di calcolo della Difference Engine No. 2, dimostrando che il progetto funzionava.