Babbage e il calcolatore programmabile L'idea innovativa che permise di cambiare i calcolatori in modo radicale rispetto alle macchine sin qui esaminate è legata al concetto di programmazione, cioè alla possibilità di fornire in ingresso alla macchina non solo i dati da elaborare, ma anche la sequenza di operazioni da eseguire sui dati. Questa sequenza di operazioni viene detta programma e guida il funzionamento della macchina nello svolgimento di attività di calcolo complesse. Questo significa che il calcolatore agisce innanzi tutto come un interprete delle istruzioni. Ogni istruzione rappresenta un singolo passo necessario per la risoluzione dell'intero problema. Poiché le sequenze di operazioni elementari che possiamo specificare alla macchina sono infinite, uno strumento di calcolo di questo genere ha enormi potenzialità, di gran lunga superiori rispetto alle normali calcolatrici. L'idea del calcolatore programmabile si concretizzò nella progettazione della Macchina Analitica (Analytical Engine) che doveva essere, nei progetti di Babbage, uno strumento di calcolo "universale" le cui operazioni possono essere di volta in volta specificate insieme ai dati da elaborare. La Macchina Analitica rappresentava un progetto estremamente innovativo, ma la complessità e la precisione richiesta per i suoi meccanismi e la mancanza di fondi resero impossibile la realizzazione concreta di tale strumento.
Fig. 57. Charles Babbage (1791-1871), intorno al 1847.
Fig. 58. Antiche tavole logaritmiche (1796). Il problema originario che portò Charles Babbage al concetto di calcolatore programmabile è quello della realizzazione di tavole matematiche precise e prive di errori. Egli, infatti, era particolarmente insoddisfatto di quelle disponibili a quel tempo poiché erano affette da numerosi errori di calcolo e di stampa.
Fig. 59. Una parte della Macchina delle Differenze (realizzata nel 1832). Il primo tentativo di Babbage per la realizzazione di tavole matematiche precise e prive di errori è legato alla progettazione della Macchina delle Differenze (Difference Engine), una macchina per calcolare e stampare direttamente tavole matematiche sfruttando un particolare metodo matematico di calcolo, noto come il metodo delle differenze. Nonostante i numerosi tentativi, Babbage non riuscì mai a completare la realizzazione della macchina a causa delle difficoltà tecniche per il montaggio dei componenti meccanici richiesti e per la notevole precisione meccanica necessaria nella preparazione di ogni singolo componente e, soprattutto, per la mancanza di fondi sufficienti. Curiosamente, una versione semplificata della macchina delle differenze fu invece progettata e realizzata dai tipografi svedesi Scheutz (padre e figlio) nel 1843. Altre versioni migliorate della macchina furono successivamente realizzate dagli stessi Scheutz e da altri inventori.
Fig. 60. Una parte della Macchina Analitica (mill e parte di stampa) in costruzione nel 1871, alla morte di Babbage. Sono visibili due colonne che permettevano di memorizzare due numeri. L'idea di calcolatore programmabile si concretizzò nella progettazione della Macchina Analitica (Analytical Engine), macchina a cui cominciò a dedicarsi nel 1834, abbandonata l'esperienza con la Macchina delle Differenze. Questa nuova macchina doveva essere, nei progetti di Babbage, un calcolatore "programmabile", cioè uno strumento di calcolo "universale" le cui operazioni possono essere di volta in volta specificate insieme ai dati da elaborare. Secondo il progetto (1836), la Macchina Analitica, azionata da un motore a vapore, avrebbe dovuto comporsi di quattro parti fondamentali: la memoria (store), un’unità di calcolo (mill), la sezione di ingresso (lettore di schede perforate, ispirate a quelle dei telai Jacquard) e la sezione di uscita (stampa dei risultati). La memoria sarebbe stata costituita da diverse colonne di ruote dentate in grado di raccogliere i numeri da elaborare. I dati venivano trasferiti dalla memoria all'unità di calcolo dove era possibile eseguire una delle quattro operazioni aritmetiche con un procedimento meccanico. Tutto il processo di calcolo doveva essere governato da speciali schede perforate (operation cards). (a) number card (b) operation card
Fig. 61. Schede progettate da Babbage per la Macchina Analitica: sopra una scheda per i dati (number card) con la costante p e sotto una scheda per le istruzioni (operation card).
Fig. 62. Ada di Lovelace (1815-1852). Nel suo lavoro Babbage fu aiutato da Ada Augusta Byron, contessa di Lovelace, figlia del poeta George Byron. Lady Lovelace collaborò con Babbage seguendo i progetti della Macchina Analitica e arricchendo con numerosi ed importanti contributi il concetto di programmazione. Tra l’altro ella si spingerà ad immaginare per questa macchina non solo compiti di tipo numerico ma anche attività come il calcolo simbolico o la composizione automatica di musica. Nel 1840 Babbage fu l'ospite d'onore al convegno torinese dei matematici italiani e, a seguito di ciò, L.F. Menabrea pubblicò il primo resoconto dettagliato riguardante il progetto della Macchina Analitica. In ricordo di questo gradito soggiorno a Torino, quando nel 1864 pubblicò la propria autobiografia, Babbage vi antepose una dedica al re Vittorio Emanule II. |
|