CHARLES BABBAGE di Agostino Rolando
C
elebre matematico inglese, Charles Babbage
progettò diverse macchine da calcolo, tra cui la Macchina Analitica (Analytical Engine), considerata il precursore dei moderni computer INTRODUZIONE Charles Babbage nacque a Walworth (nella regione del Surrey) il 26 Dicembre del 1791, uno di quattro figli del banchiere Benjamin Babbage e di Elizabeth Teape. Da ragazzo frequentò il Trinity College, a Cambridge. In seguito si trasferì alla scuola Peterhouse, dove infine (nel 1814) si laureò in matematica. Lo stesso anno sposò Georgina Whitmore. Babbage trascorse gran parte della sua vita a Londra. Qui, nel 1816, fu nominato membro della Royal Society e ottenne la cattedra di matematica all’università di Cambridge, che mantenne dal 1828 fino al 1839. Nel periodo compreso tra il 1813 e il 1868 Babbage pubblicò diversi trattati e una novantina di articoli. Personaggio di grande talento e acuto osservatore della realtà, egli coltivò interessi particolarmente vasti; infatti, oltre che fine matematico, Babbage fu scienziato e inventore molto prolifico. Fu pure esperto di economia politica e attento critico dell’establishment accademico.
1
Il periodo storico in cui Babbage visse fu estremamente prolifico di idee innovative. Ricordiamo ad esempio il francese Joseph Marie Jacquard che, nel 1804, ideò un sistema di automazione per i telai da tessitura basato su schede di cartone perforate (figura a lato). Questo congegno permetteva la produzione automatica di tessuti a disegni, i quali erano rappresentati sotto forma di fori su schede di cartone. Il metodo rappresentò un rivoluzione per l’industria tessile, che costituiva uno dei settori trainanti della produzione industriale. Il sistema si diffuse rapidamente, segnando il passo alla nascita della scheda perforata, che costituì il principale dispositivo di programmazione e di immissione dati per tutte le successive macchine da calcolo, fino al 1970.
Figura 2 - scheda Hollerith IBM
Figura 1 - Telaio Jacquard
ATTIVITÀ Tra le sue prime occupazioni, Charles Babbage si interessò ai dispositivi per il segnalamento luminoso in ambito ferroviario. In quel campo si rivelò un vero e proprio pioniere, tanto che a lui si deve l’invenzione della "scatola nera", strumento indispensabile per la registrazione degli eventi al fine di determinare le cause dei disastri ferroviari. Ma la celebrità di Babbage si deve soprattutto al suo lavoro, anche qui pionieristico, riguardante le tecniche di calcolo automatico [1,4]. L’avventura iniziò nel 1821 quando, alle prese con le tavole logaritmiche (usatissime nei calcoli matematici) che, al tempo, venivano compilate a mano e contenevano, per questo motivo, non pochi errori di trascrizione, Babbage concepì l’idea di meccanizzare la generazione e la stampa delle stesse. Il progetto da lui ideato consisteva in un meccanismo in grado non solo di effettuare calcoli matematici, ma anche di stampare i risultati, il tutto in maniera completamente automatica e senza l’intervento umano.
2
Questo avrebbe permesso di eliminare, in un solo colpo, tutte le possibili fonti di errore che spesso si verificavano nel procedimento di preparazione delle tavole manualmente.
LA MACCHINA ALLE DIFFERENZE L’apparato ideato da Babbage fu da lui chiamato Difference Engine, che traduciamo in Macchina alle Differenze o, più propriamente, Motore di calcolo alle Differenze. Il nome derivava dal procedimento di calcolo su cui la macchina si basava, il metodo delle Differenze Finite appunto. Nella figura a lato riportiamo il disegno originale di Babbage della sezione dedicata al calcolo.
D Figura 3 - disegno originale di una piccola porzione della difference engine N.1 ; fonte : Museum of King’s College, Somerset House
Figura 4 - Porzione della macchina assemblata da Joseph Clement nel 1832. Rappresenta un settimo del meccanismo completo. Questo lavorato è costituito da circa 2000 componenti
La Difference Engine fu concepita da Babbage nel 1821 con l’intento, come si è detto, di automatizzare la produzione di tavole numeriche matematiche. A differenza delle macchine da calcolo ideate dai suoi predecessori, quali Pascal e Leibniz, la macchina di Babbage non era propriamente intesa per
3
effettuare le quattro operazioni di base quanto per generare, con un algoritmo semplice, una serie di valori numerici da stampare in automatico. Perché la scelta del metodo delle differenze finite ? Il vantaggio di tale tecnica era quello di non avere bisogno di realizzare moltiplicazioni e divisioni nel calcolo di una particolare classe di funzioni matematiche, i polinomi. La macchina utilizzava solo l’operazione di addizione, procedimento molto più facilmente automatizzabile di quanto non siano la moltiplicazione o la divisione.
La costruzione delle costituenti meccaniche elementari della Macchina alle Differenze mise a dura prova le capacità tecnicoingegneristiche dell’epoca. Le complesse forme dei ruotismi ideati da Babbage richiedevano speciali strumentazioni per essere costruite e l’intera Macchina, dal canto suo, necessitava di centinaia di componenti di precisione identici.
Figura 5 - Dettaglio delle parti meccaniche
Le specifiche di progetto dell’intera Macchina alle Differenze richiedevano circa 25 mila pezzi. Il peso stimato dell’apparato completo si sarebbe aggirato intorno alle quindici tonnellate. L’apparecchiatura, una volta completata, sarebbe stata alta otto piedi, lunga sette e profonda tre. Per la costruzione della Difference Engine, Babbage incaricò Joseph Clement, un abile artigiano e disegnatore di strumenti meccanici. Questi, nel 1832, portò a compimento una buona parte dell’apparato. Il pregevole manufatto oggi rimane a icona della preistoria del computer (figura 4). Questa opera è al tempo stesso il più antico calcolatore automatico e un perfetto esempio di ingegneria meccanica di precisione.
4
Figura 6 - Particolare della Difference Engine N.1 che mostra la perfezione raggiunta dalla meccanica di precisione dell’epoca Le risorse finanziarie erano di notevolissima importanza per sviluppare progetti come quelli concepiti da Babbage; l’impresa dello scienziato fu sostenuta da un’elargizione della Royal Society di circa 17 mila sterline. Tuttavia, il lavoro fu abbandonato da Clement nel 1833 a causa di irrisolti conflitti con lo scienziato, dal carattere estremamente irascibile [3], che si trascinavano da tempo.
LA MACCHINA ANALITICA Sul finire del 1834, mentre la Macchina alle Differenze era ancora in via di realizzazione, Babbage ideò una seconda macchina, che chiamò Macchina Analitica (Analytical Engine). Era, questo, uno strumento assolutamente rivoluzionario, che meritò la qualifica di antenato del moderno computer [2].
5
La macchina Analitica era molto più ambiziosa e tecnicamente raffinata di quanto non fosse la precedente Macchina alle Differenze. Il grosso del lavoro di impostazione della Macchina Analitica fu descritto con profusione di dettagli da Babbage nel 1840. Tuttavia, al pari della Macchina alle Differenze. poche componenti di questo apparato furono effettivamente costruite e ciò che sopravvive oggi è solo una collezione di meccanismi parzialmente completati e modelli di test di piccole parti operative. Figura 7 - meccanismo parziale dell’Analitycal Engine La Macchina Analitica combinava insieme l’utilizzo della scheda perforata con un meccanismo di riporto automatico. Con l’Analytical Engine, considerata unanimemente il precursore dei moderni computer, per la prima volta veniva prevista l’idea di una programmazione (per mezzo di schede perforate) e i risultati del calcolo potevano a loro volta trasformarsi in dati intermedi per le operazioni successive. Di questo concetto, in particolare, Babbage fu debitore alla straordinaria matematica Ada Byron Lovelace, che fu sua contemporanea [5].
Nel salotto di Ada Byron, figlia del poeta Lord Byron, era consuetudine che si riunissero periodicamente i maggiori cervelli di Londra per discutere di problematiche culturali e scientifiche. Ada, interessatasi al lavoro di Babbage, si dedicò a studiare i metodi di calcolo realizzabili con le sue macchine. Tradusse e commentò in lingua inglese alcuni articoli dell’italiano Federico Menabrea sugli sviluppi delle macchine proposte da Babbage. Questi la spinse ad aggiungere le sue note - assai più lunghe dello stesso articolo - in cui i due esprimevano idee e sogni sulle possibilità di calcolo ottenibili con le macchine analitiche. Nel suo articolo, che venne pubblicato nel 1843, Ada descriveva le macchina come uno strumento programmabile e, con incredibile lungimiranza, prefigurava il concetto di Intelligenza Artificiale, spingendosi ad affermare che la macchina analitica sarebbe stata cruciale per il futuro della Scienza, Figura 8 - Ada Byron
6
anche se escludeva la possibilità che la macchina potesse mai divenire pensante come gli esseri umani. Ada inoltre presentò insieme al proprio articolo un algoritmo per il calcolo dei numeri di Bernoulli in forma tabulata, il quale oggi viene riconosciuto come il primo programma informatico della storia. Il suo algoritmo si rivelò estremamente raffinato (molto più di analoghe procedure stilate dallo stesso Babbage); per questo Ada viene riconosciuta come una, se non la prima, protagonista della storia dell’ Informatica. A lei è stato dedicato il linguaggio di programmazione ADA, sviluppato dal Dipartimento della Difesa statunitense, divenuto oggi uno standard in ambito aerospaziale. La Macchina Analitica era stata concepita come un congegno di enormi proporzioni, tanto che, per funzionare, si sarebbe dovuto impiegare un motore a vapore per fornire la necessaria forza motrice.
Figura 9 – sezione della Macchina Analitica completa di meccanismo di stampa (Museo della Scienza, Londra) I principi di funzionamento dell’Analitycal Engine vennero poi ripresi da Herman Hollerith per creare la sua Macchina Tabulatrice, utilizzata in occasione del censimento della popolazione statunitense del 1890. Il successo della macchina tabulatrice costituì il punto di partenza per la diffusione del calcolo meccanizzato in tutti i Paesi industrializzati.
7
Per le schede perforate Hollerith scelse le dimensioni della banconota da un dollaro, con dei fori disposti su 80 colonne. Questo rimase, ancora per molti anni, il formato standard delle schede per le macchine da calcolo. Ancora nel 1970, le schede Hollerith venivano utilizzate per immettere i programmi e i dati nei computer mainframe dei principali centri di calcolo. Di lì a pochi anni, con l’avvento dei primi terminali alfanumerici, sarebbero diventate carta da macero
Figura 10 – la scheda perforata
MACCHINA ALLE DIFFERENZE N. 2 Sette anni più tardi Babbage diede inizio al progetto della Macchina alle Differenze Numero 2, per la quale adottò semplici ed eleganti soluzioni tecniche, frutto dell’esperienza accumulata nel frattempo con la più complessa Macchina Analitica. Il lavoro di stesura delle specifiche impegnò lo scienziato per due anni, dal 1847 al 1849. L’apparato risultò particolarmente ottimizzato, rispetto alla macchina N.1. Richiedeva, infatti, ben tre volte meno componenti, a pari capacità di calcolo.
Figura 11 - Macchina alle Differenze N.2. È composta da sette moduli ed effettua calcoli fino a 31 cifre.
8
Purtroppo Babbage non riuscì mai a portare a compimento la costruzione delle sue prodigiose macchine. Occorre osservare che Babbage non fece un serio tentativo per costruire la Difference Engine N. 2 la quale, come gli altri suoi progetti, rimase incompiuta. Il motivo viene ancora discusso oggi dagli storici. Vi possono essere state ragioni molteplici: in primo luogo, il complicato carattere di Babbage stesso e i conseguenti attriti con il suo ingegnere Joseph Clement. Inoltre, molto importanti furono le problematiche legate all’instabilità politica, le difficoltà nell’ottenere sovvenzioni e, soprattutto, le limitazioni di carattere tecnologico dell’epoca Vittoriana. Nel 1985 il Museo delle Scienze di Londra costruì la macchina (figura 11) basandosi sui disegni originali, in occasione del secondo centenario della nascita di Charles Babbage. La sola sezione di calcolo della Difference Engine N. 2 (escludendo il meccanismo di stampa) annovera 4000 parti mobili e pesa 2.6 tonnellate. È alta sette piedi, lunga undici ed è profonda 18 pollici.
CONSIDERAZIONI CONCLUSIVE Babbage ideò la Analytical Engine nel 1834, dopo l’abbandono del progetto di costruzione della prima Difference Engine. E fu proprio la Macchina Analitica il condensato più rappresentativo del pensiero e dell’abilità di Babbage. Le Macchine alle Differenze erano dispositivi automatici, non avevano quindi bisogno del continuo intervento di un operatore. Esse furono i primi apparati a racchiudere regole matematiche entro ruotismi meccanici. Tuttavia, tali macchine non erano di tipo general purpose, infatti erano state pensate per sommare dei numeri, secondo una particolare sequenza. La Macchina Analitica, invece, si distaccava nettamente dalle altre realizzazioni di Babbage in quanto non solo era automatica, ma era anche di tipo general purpose. Poteva, cioè essere programmata dall’operatore, al fine di eseguire un certo repertorio di istruzioni, in un qualsiasi ordine che venisse impostato. La Macchina Analitica rappresentava quindi uno strumento universale, atto a determinare il valore di una qualsiasi funzione algebrica. Inoltre, non era costituita da un singolo dispositivo, ma da un collage di dispositivi specializzati a svolgere in sinergia determinate funzioni, al cui perfezionamento Babbage continuò a lavorare per il resto dei suoi anni, fino al sopraggiungere della morte nel 1871. La Analytical Engine conteneva già gli elementi logici di base caratteristici di un moderno computer digitale: la programmabilità per mezzo di schede perforate, la memoria dove i numeri e i risultati intermedi potevano essere conservati, e una separata unità aritmetica adibita ad effettuare le operazioni.
9
Inoltre, la Analytical Engine poteva effettuare dei loop (cioè ripetere una certa sequenza di istruzioni per un certo numero di volte) ed era capace di effettuare salti condizionati (il moderno costrutto IF…THEN…), quindi era in grado di eseguire automaticamente percorsi differenti a seconda dei risultati dei calcoli. La struttura pensata da Charles Babbage (e da Ada Byron) aveva molti punti di contatto con la ventura Macchina di Turing. Un tale macchinario, se costruito completamente, avrebbe raggiunto una mole considerevole e avrebbe richiesto una ingente forza motrice. Babbage ebbe la sfortuna di concepire i suoi progetti in un periodo storico in cui le tecniche costruttive erano in transizione tra la fase di produzione artigianale di pezzi singoli verso quella di produzione di massa; non vi erano ancora metodiche per produrre parti ripetitive in maniera automatica. Lo stesso Babbage volle sincerarsi di persona di queste limitazioni andando a visitare diverse fabbriche, sia in Inghilterra che nel Continente. A seguito di questi sopralluoghi, egli decise di elaborare un testo di carattere economico-divulgativo sulle Macchine e Manifatture, che venne pubblicato nel 1832. I successivi tentativi di Babbage per ottenere dei finanziamenti non andarono a buon fine. Negli ultimi anni della sua vita egli concentrò la sua attenzione su metodiche più semplici ed economiche per la produzione in serie di parti meccaniche e realizzò solo una piccola porzione della Macchina Analitica. Il movimento di opinione volto a sviluppare il Calcolo Automatico nel Diciannovesimo Secolo perse consistenza e l’entusiasmo di Babbage non fu raccolto dai suoi successori.
RIFERIMENTI 1. Bowden B.V., Faster Than Though, a Symposium on digital computing machines, ed., London, ed. Pitman & Sons, 1953. 2. Hyman A., Charles Babbage: pioneer of the computer, Oxford University Press, 1982. 3. Moseley M, Irascible genius: A Life of Charles Babbage, Inventor, London, ed. Hutchinson, 1964 4. Swade D., Charles Babbage and his Calculating Engines, London, ed. Science Museum, 1991 5. Toole B., Ada, The Enchantress of Numbers,: Strawberry Press, 1992
10