Illustre matematico e scienziato inglese (nel 1816, a soli 24 anni fu eletto della Royal Society di Londra, prestigiosa istituzione scientifica), Charles Babbage può essere considerato l’ideatore dei concetti alla base dei moderni computer. Era fermamente convinto della necessità di costruire dei dispositivi per automatizzare i complessi calcoli matematici necessari all’epoca essenzialmente per usi astronomici.
Verso il 1820 intraprese il progetto del “Difference Engine”, per il calcolo delle tabelle dei logaritmi mediante il metodo delle differenze. Presentò la sua invenzione alla Royal Astronomical Society nel 1822 e nel 1823 ottenne in riconoscimento una medaglia e sovvenzioni governative per proseguire gli sviluppi. La realizzazione pratica di un dispositivo meccanico molto complesso per la tecnologia del’epoca si rivelò subito un compito molto arduo, al quale si unirono altri problemi: la ricerca di sovvenzioni governative (i rapporti di Babbage con i rappresentanti del governo inglese furono caratterizzati da alterne vicende) e la difficile relazione con il suo ingegnere Joseph Clement, responsabile della realizzazione delle parti meccaniche.
Con varie interruzioni dovute essenzialmente alla mancanza di fondi, i lavori proseguirono sino al 1832, anno nel quale venne completata la costruzione di una piccola parte della sua «macchina differenziale».
Nel frattempo Babbage aveva maturato nuove idee per una macchina più evoluta, l’ “Analytical Engine”: interruppe quindi la costruzione della macchina differenziale, per dedicarsi al nuovo progetto, al quale dedicherà in pratica il resto della sua vita di scienziato, senza mai riuscire a realizzarla.
Eppure, questa macchina mai costruita rappresenta in qualche modo il prototipo, il modello dei moderni calcolatori: infatti la struttura di base e il principio di funzionamento che Babbage elaborò per la sua «macchina analitica» sono quelli che ancora oggi vengono utilizzati. Per la prima volta egli introdusse il concetto di una macchina composta da quattro dispositivi, ciascuno specializzato su un compito:
- the store (la memoria), che contiene “tutte le variabili sulle quali operare, e i risultati originati dai calcoli su queste”
- the mill (la CPU di oggi) che contiene “le quantità che devono essere elaborate”
- the control, che stabilisce la sequenza di operazioni da svolgere, secondo il principio delle schede perforate del telaio di Jacquard.
- the input/output per inserire i dati e leggere i risultati.
Il principio di funzionamento è quello di un moderno calcolatore: il “programma” (la pila di schede perforate) definisce la sequenza di istruzioni, quindi il particolare compito da svolgere. Va sottolineato come la sequenza di istruzioni possa dipendere dal risultato dei calcoli precedenti.
Questo concetto differenzia radicalmente il telaio di Jacquard (nel quale la sequenza è fissa e determinata dalla perforazioni nelle schede) dalla macchina analitica, che introduce il concetto di “if..then” cioè di test di una certa condizione; è il meccanismo base della programmazione, in qualche modo ne rappresenta “l’intelligenza”. Questa descrizione dello stesso Babbage potrebbe essere usata per definire quello che noi chiamiamo software: “ogni insieme di carte predisposto per una certa formula ricalcolerà in futuro quella formula con le costanti che saranno necessarie” “quindi la Macchina Analitica possiederà una propria libreria. Ogni insieme di carte predisposto una volta permetterà di rieseguire in ogni momento i calcoli per i quali era stato predisposto”.
Babbage visitò Torino nel 1840 e discusse le sue idee con matematici locali, fra i quali Luigi Menabrea, il quale raccolse gli appunti di quanto presentato da Babbage e li pubblicò in un articolo nell’ottobre 1842.
Lady Ada Lovelace tradusse questo articolo in inglese, aggiungendo molte note con maggiori dettagli, e anche dei programmi da lei scritti, fra i quali uno per il calcolo della sequenza dei numeri di Bernulli. E’ grazie a questo documento di Ada Lovelace, pubblicato nel 1843, che conosciamo oggi i dettagli della Macchina Analitica, che non fu mai costruita all’epoca; sempre per questa sua opera, Ada Lovelace viene talvolta considerata il primo programmatore della storia ( o, più appropriatamente, la “madre” della programmazione). In realtà l’idea originale del controllo della macchina tramite un “programma” è di Babbage, al quale va quindi attribuito il ruolo di “padre” della programmazione.
Fonti
- Herman H. Goldstine – “The Computer from Pascal to von Neumann” pp 10-26
Princeton University Press 1972 - https://www.computerhistory.org/babbage/charlesbabbage/
- https://www.britannica.com/biography/Charles-Babbage
- http://www.bbc.co.uk/history/historic_figures/babbage_charles.shtml