CULTURA

Dalle macchine di Charles Babbage ai computer meccanici

Facciamo un passo indietro nel tempo. Il 13 luglio 1824 un matematico britannico, Charles Babbage, riceve la medaglia d’oro della Royal Astronomical Society per il suo lavoro, pubblicato l’anno prima, sulle Note on the application of machinery to the computation of astronomical and mathematical tables, le note sull’applicazione di dispositivi meccanici al calcolo di tavole astronomiche e matematiche. Quella che il matematico propone è il modello di una difference engine, di una macchina differenziale. L’idea di Babbage è che molte delle funzioni matematiche utilizzate da ingegneri, marinai e, appunto, astronomi sono logaritmiche o trigonometriche. Funzioni che possono essere approssimate con un errore piccolo a piacere da polinomi, del tipo: 

a + bx + cx2 + …fxn + … 

E allora perché non pensare a una macchina capace di calcolare tabelle di polinomi usando il metodo noto ai matematici come “metodo delle differenze”? Nel 1823 Charles Babbage riceve dal governo inglese la somma di 1.500 sterline per realizzare il suo progetto. Che promette risultati interessanti. Non è un caso se a premiarlo, già nel 1824, sia la società degli astronomi, che Babbage peraltro ha contribuito a fondare: in fondo, come aveva rilevato Leibniz, sono loro, gli astronomi, i primi “schiavi del calcolo a mano”. Babbage li libera (o, almeno, promette di liberarli) da questa schiavitù realizzando il primo calcolatore digitale automatico programmabile. Il calcolatore digitale è, semplicemente, una macchina in cui i dati e le istruzioni sono codificati come numeri.

Come funziona la macchina differenziale di Charles Babbage (in inglese) - Computer History Museum, Mountain View, CA

Macchine differenziali e macchine analitiche

La macchina differenziale di Babbage, dopo una decina di anni di lavoro e una spesa di 17.000 sterline, resta incompiuta, causa problemi tecnici. A quel punto il governo inglese sospende i finanziamenti e Babbage reagisce con amarezza pubblicando nel 1830 le sue Reflections on the Decline of Science in England, and some of its Causes

Le difficoltà nella concreta realizzazione della macchina differenziale, comunque, non scoraggiano Babbage, che tra il 1833 e il 1843 progetta e avvia la costruzione di una “macchina analitica”: ovvero di una macchina programmabile capace, a differenza della precedente, di svolgere ogni tipo di calcolo. Oggi la chiameremmo computer general purpose: un calcolatore per scopi generali

Babbage pensa di programmarlo, il suo computer meccanico e general purpose, con schede perforabili, adattando ai problemi matematici la tecnica usata dal francese Joseph Marie Jacquard per programmare i telai per la confezione di tessuti con diverse trame. La macchina utilizza due tipi di schede perforate – le prime, le operation cards determinano la natura delle operazioni da effettuare, le altre, le variable cards, riguardano le variabili delle operazioni – ed è dotata di una stampante, di un plotter per i grafici e di un campanello per segnalare la fine delle operazioni. 

Anche se la realizzazione pratica della macchina analitica, con le sue numerose ruote e i complessi ingranaggi, incontrerà le medesime difficoltà di quella differenziale e non verrà portata a termine, Babbage è l’uomo che ha concepito il primo computer digitale automatico e programmabile. Come ci invita a fare Hermann Goldstine, è interessante notare che nei tentativi di Babbage si manifesta un processo che è costante nella storia del computer (e non solo): lo sviluppo di macchine radicalmente nuove è determinato da persone di genio che adattano nuove tecnologie alla necessità di aumentare la velocità di calcolo

Il computer di Charles Babbage non era irrealizzabile. Tant’è che ne costruiscono un modello funzionante lo svedese Georg Scheutz e suo figlio Edvard. Si tratta di una macchina differenziale presentata all’esposizione universale di Parigi nel 1855 e poi venduta negli Stati Uniti al Dudley Observatory di Schenectedy, New York. 

Il figlio di Charles, Henry Babbage, riesce invece a completare una versione semplificata della macchina analitica nel 1888 e a dare pubblica dimostrazione della sua funzionalità nel 1906. 

Ma il problema reale è che i computer meccanici progettati da Charles Babbage non consentono quel salto di qualità in termini di velocità e, dunque, di potenza di calcolo che, unico, avrebbe consentito di realizzare il sogno di Leibniz: liberare dalla schiavitù dei conti astronomi e fisici, ingegneri e marinai. Sono troppo lenti

I computer analogici e meccanici

Migliori prestazioni, da questo punto di vista, sembrano fornirle, tra la fine del XIX e l’inizio del XX secolo, i computer analogici, come quello realizzato dallo spagnolo Leonardo Torres Quevedo e presentato nel 1893 all'Accademia spagnola delle Scienze e della Fisica. Si tratta di un calcolatore meccanico che, a differenza dei computer digitali di Babbage, non utilizza numeri, quindi quantità discrete, bensì variabili fisiche continue (come la differenza di potenziale,  o anche, come succede nel regolo calcolatore, la semplice lunghezza di un’asta). Il computer analogico di Leonardo Torres Quevedo è in grado di risolvere equazioni algebriche anche complesse, con precisione dell’ordine dei millesimi.

Il primo computer analogico, tuttavia, era già stato realizzato, come abbiamo detto, nel 1872 da William Thomson, al secolo Lord Kelvin. Si tratta di una macchina capace di predire con notevole precisione l’andamento delle maree. Mentre un analizzatore differenziale, una macchina analogica capace di risolvere equazioni differenziali mediante integrazione usando meccanismi cosiddetti wheel-and-disc, capaci di trasformare un movimento circolare continuo in uno alternato, era stato messo a punto da James Thomson, il fratello di Lord Kelvin, nel 1876.

Ma ritorniamo a Babbage. A ben vedere, il suo computer meccanico non è solo un number cruncher, ma anche un symbol manipulator. E difficilmente l’inglese lo avrebbe potuto progettare se non avesse letto i lavori di un conterraneo, George Boole, che, per dirla con Bertrand Russell, ha inventato la “matematica pura”. 

E in realtà, intorno alla metà del XIX secolo, nel 1848, con il libro The Mathematical Analysis of Logic, preludio al suo capolavoro del 1854, An Investigation of the Laws of Thought, Boole riprende e sviluppa l’idea che era stata di Leibniz: ridurre la logica ad algebra, con un procedimento assiomatico ipotetico-deduttivo che è del tutto simile a quello proposto per la geometria da Euclide oltre due millenni prima. Fonda così quella logica matematica che è la cornice teorica su cui – lungo un percorso tutto inglese – si fonderanno non solo i Principia Mathematica di Alfred Whitehead e di Bertrand Russell del 1910-1913, ma anche, un quarto di secolo dopo, l’idea di macchina universale, symbol manipulator, di Alan Turing. 

Ma i meriti di Boole non si esauriscono qui (e comunque non sarebbe davvero poca cosa). Nei due libri che abbiamo citato egli propone un’algebra binaria, fondata su due sole variabili, vero o falso, e sull’utilizzo di pochi “operatori matematici”. Quindi propone anche il terzo elemento che si fonderà nella moderna informatica così come segnalato da Turing: il linguaggio. L’”algebra booleana” è oggi a fondamento dell’elettronica digitale

Tra la fine del XIX e l’inizio del XX secolo si sviluppano i computer meccanici in maniera notevole: lo United States Census Bureau, per esempio, in questo periodo rende completamente automatico, per il tramite di macchine capaci di leggere schede perforate, la sua raccolta dati sulla popolazione americana. Lo sviluppo di questo tipo di macchine porta alla fondazione, nel 1924, della IBM (International Business Machines) leader dell’industria meccanografica insieme alla Remington Rand, fondata a sua volta fondata nel 1927. 

Puoi leggere la prima puntata di questa serie: Pietro Greco - La storia del computer 

Domani sarà pubblicata la terza puntata: Pionieri e sperimentatori: la grande corsa degli anni '30 e '40. Poi scoppia la guerra

POTREBBE INTERESSARTI

© 2018 Università di Padova
Tutti i diritti riservati P.I. 00742430283 C.F. 80006480281
Registrazione presso il Tribunale di Padova n. 2097/2012 del 18 giugno 2012