Macchina analitica

Da Wikipedia, l'enciclopedia libera.
Jump to navigation Jump to search
Modello di una parte dell'Analytical Engine di Babbage in mostra al Museo della scienza di Londra[1].

La macchina analitica (Analytical engine in lingua inglese) è stato il primo prototipo di un computer meccanico sviluppato per eseguire compiti generici. Il progetto fu sviluppato dal matematico, filosofo e scienziato inglese Charles Babbage (1791–1871), che cercò anche di realizzarlo praticamente.[2]

La macchina analitica rappresenta un importante passo nella storia dell'informatica.[3]

La prima descrizione del progetto fu pubblicata il 26 dicembre del 1837, nella nota On the Mathematical Power of the Calculating Engine[4]; in esso Babbage chiariva l'organizzazione di una macchina capace di effettuare calcoli generali sotto il pieno controllo automatico.

Babbage lavorò incessantemente al progetto, fino alla morte avvenuta nel 1871. Per motivi politici e finanziari, la macchina non fu però mai realizzata. È indubbio, comunque, che i moderni personal computer, pur essendo stati sviluppati quasi cento anni dopo, abbiano notevoli analogie con la macchina analitica.

Alcuni storici ritengono che con le competenze tecniche dell'epoca la macchina non avrebbe potuto affatto funzionare, mentre altri storici ribattono che un maggiore supporto politico e finanziario avrebbe permesso di superare i problemi tecnici e quindi avrebbe reso possibile la costruzione della macchina.

Progetto[modifica | modifica wikitesto]

Schede perforate per la macchina analitica: le dimensioni corrispondono a diversi tipi, variable cards (più grandi, per le variabili) e operational cards (più piccole, per le operazioni)

Babbage, durante lo sviluppo del suo primo progetto, la macchina differenziale, si era reso conto di poter ideare una macchina generica molto più potente e interessante dal punto di vista pratico. Una macchina, cioè, che non si limitasse solo a sviluppare dei calcoli matematici, ma che potesse elaborare complessi "ragionamenti". L'ispirazione veniva probabilmente anche dallo sviluppo che l'orologeria aveva avuto nel Settecento, che a sua volta aveva generato un artigianato degli "automi", usati solo per divertimento, e dalla possibilità di programmazione del telaio di J. M. Jacquard. Chiamò quest'ultimo sistema, appunto, macchina analitica.

Lo schema teorico di questa macchina è universalmente riconosciuto come il primo prototipo di calcolatore generico complesso. È infatti basato su un sistema di input, un sistema per l'elaborazione dei dati con un dispositivo chiamato "Mill" (mulino), e un sistema di output, lo stesso schema che verrà usato più di un secolo dopo nei laboratori americani per creare il primo computer.

La macchina analitica doveva essere alimentata da un motore a vapore e doveva essere lunga più di 30 metri per 10 metri di profondità. I dati d'ingresso e il programma sarebbero stati inseriti tramite schede perforate, un metodo già utilizzato per programmare i telai meccanici dell'epoca e che sarà utilizzato in séguito anche nei primi computer mainframe, fino a tutti gli anni 70 del secolo XX. I dati di uscita sarebbero stati prodotti da uno stampatore e da un arco in grado di tracciare curve. La macchina sarebbe stata in grado di perforare delle schede per memorizzare dei dati da utilizzare successivamente. La macchina utilizzava un'aritmetica in base 10 a virgola fissa. La memoria interna sarebbe stata in grado di contenere 1000 numeri di 50 cifre. La componente "Mill", che costituiva l'idea di base dell'unità aritmetica e logica presente nelle moderne CPU, sarebbe stata in grado di svolgere le quattro operazioni aritmetiche.

Il linguaggio di programmazione utilizzato dalla macchina era un linguaggio molto simile al moderno assembly. In esso erano previsti cicli e salti condizionali che rendevano quel linguaggio (e quindi anche la macchina) Turing completo. Erano previsti tre differenti tipi di schede: una tipologia era riservata alle operazioni matematiche, un altro tipo era previsto per le costanti matematiche e il terzo tipo serviva a caricare e salvare i dati.[5]

Nel 1842, durante un congresso, il matematico italiano Luigi Federico Menabrea ascoltò dalla voce di Babbage una descrizione del progetto della macchina analitica. Menabrea realizzò una descrizione in francese della macchina. Il suo lavoro fu tradotto in inglese e significativamente ampliato da Ada Lovelace. Lovelace, negli anni successivi, realizzò molti lavori teorici per la macchina analitica, ivi compreso quello che è considerato il primo programma informatico della storia, un algoritmo per il calcolo dei numeri di Bernoulli.

Parziale costruzione[modifica | modifica wikitesto]

Nei suoi ultimi anni, Babbage si adoperò per costruire una versione semplificata della macchina, e riuscì ad assemblarne una parte prima della sua morte nel 1871.[6]

Nel 1878, il comitato della British Association for the Advancement of Science, nonostante avesse riconosciuto il valore e l'utilità della macchina, si pronunciò contraria alla sua costruzione, cosa che impedì a Babbage di accedere a eventuali fondi governativi.[7]

Nel 1906 Henry P. Babbage, il figlio di Charles Babbage, costruì una parte della macchina e del sistema di stampa, e la utilizzò per calcolare una lista (errata) di multipli del pi greco. La parte costruita era una piccola parte del progetto completo, non era programmabile e non era dotata di unità di memorizzazione. La "Macchina analitica" di Henry è ora in mostra nel Museo della scienza di Londra . Henry si mostrò disposto a costruire anche un prototipo dell'intera macchina, con una minore capacità di memorizzazione: "forse per una prima macchina dieci (colonne) andranno bene, con quindici ruote ciascuna". Questa versione avrebbe potuto lavorare con 20 numeri di 25 cifre ciascuno, e ciò che avrebbe potuto fare con questi numeri era, ai tempi, impressionante. "È solo una questione di schede e tempo", scrisse Henry Babbage nel 1888,"... e non c'è alcuna ragione per cui (ventimila) schede non dovrebbero essere usate, se necessario, in una macchina analitica per gli scopi di un matematico.

Nel 1991, il Museo della scienza, lavorando a partire dai suoi progetti originali, costruì un modello completo e funzionante della seconda macchina differenziale, che Charles Babbage presentò nel 1823. La versione del Museo della scienza includeva vari perfezionamenti rispetto a quella di Babbage che furono pensati durante lo sviluppo della macchina analitica.[8] Il Museo della scienza si è impegnato a realizzare la sua macchina utilizzando solo materiali, tolleranze e accoppiamenti dimensionali che sarebbero stati utilizzabili anche dal matematico britannico nella sua epoca dimostrando, in questo modo, che la macchina avrebbe potuto funzionare.[9] Gli ingegneri svedesi Edvard Scheutz e Per Georg Scheutz hanno costruito un modello funzionante della macchina differenziale nel 1853, ma su diversa scala: le dimensioni di un tavolo anziché le dimensioni di una stanza.[10][11]

Istruzioni[modifica | modifica wikitesto]

Diagramma della macchina analitica del 1840

Non è noto se Babbage abbia scritto delle istruzioni esplicite sul come programmare la macchina manualmente. Tuttavia ha mostrato come i programmi stessi siano formati da una serie di stati, e quali operatori venissero utilizzati durante l'esecuzione di ognuno di essi.

Allan G. Bromley ha ipotizzato che le varie schede potessero essere lette anche in ordine inverso, cosa che renderebbe la macchina Turing equivalente:

"... le schede potevano essere ordinate in modo da muoversi sia in avanti che indietro (e dunque creare dei cicli)...

Questo permise l'introduzione per la prima volta, nel 1845, di operazioni per una grande varietà di funzioni tra cui, innanzitutto, un sistema efficace di controllo da parte dell'utente dei cicli nella programmazione. "

Riguardo il loro emulatore della macchina, Fourmilab afferma:

"Il lettore di schede della macchina non è limitato a processare le schede semplicemente una dopo l'altra dall'inizio alla fine. Infatti può, in aggiunta, essere reindirizzata alle stesse carte che legge e, in base a come la levetta del mulino è attivata, può sia andare avanti nella catena di lettura, saltando alcune schede, o tornare indietro e ri-processare le carte già lette in precedenza."

Questo emulatore contiene un set scritto di istruzioni in simboli, che però è stato ideato dai suoi autori piuttosto che essere basato sul lavoro originale di Babbage. Per esempio il programma per calcolare un fattoriale sarebbe scritto:

N0 6
N1 1
N2 1
×
L1
L0
S1
-
L0
L2
S0
L2
L0
CB?11

dove CB è la condizione usata per far retrocedere la lettura, in questo caso di 11 schede.

Influenze[modifica | modifica wikitesto]

Informatica[modifica | modifica wikitesto]

La macchina analitica venne completamente dimenticata, salvo poche eccezioni: Percy Ludgate, ad esempio, scrisse della macchina analitica nel 1915 e progettò a sua volta una propria versione della macchina (che non realizzò mai). La macchina analitica di Ludgate era molto più piccola di quella di Babbage, difatti doveva occupare solo 0.22 metri cubi, e teoricamente doveva essere in grado di moltiplicare due numeri di 20 cifre in 6 secondi. Leonardo Torres y Quevedo e Vannevar Bush conoscevano i lavori di Babbage sebbene, probabilmente, non si conoscessero reciprocamente.[12]

I lavori di Babbage ispirarono profondamente i lavori di George Stibitz dei Bell Laboratories di New York prima della seconda guerra mondiale e di Howard Aiken di Harvard durante e dopo la seconda guerra mondiale. Entrambi costruirono dei calcolatori elettromeccanici con un disegno simile al progetto di Babbage, sebbene fossero concettualmente molto diversi da un moderno computer programmabile. La macchina di Aiken fu fortemente finanziata dall'IBM e fu chiamata Harvard Mark I.[13]

Dalla autobiografia di Babbage:

« Quando la macchina analitica verrà realizzata, necessariamente guiderà lo sviluppo futuro della scienza[13]. »

Finzione[modifica | modifica wikitesto]

William Gibson e Bruce Sterling, scrittori cyberpunk, sono coautori di un romanzo del genere steampunk intitolato La macchina della realtà (The Difference Engine). In questo romanzo, ambientato nella Londra del 1855, si esplora un passato alternativo in cui la macchina analitica è stata già costruita e la sua realtà, unita a quella della Rivoluzione industriale, ormai avviata, influenza notevolmente i personaggi e le scene dell'era vittoriana.[14]

Note[modifica | modifica wikitesto]

  1. ^ Babbage's Analytical Engine, 1834-1871. (Trial model) Archiviato il 20 settembre 2010 in Internet Archive. - Museo delle Scienze, Londra
  2. ^ Charles Babbage, su gap-system.org. URL consultato il 18 maggio 2011 (archiviato dall'url originale il 12 gennaio 2012).
  3. ^ Storia del calcolo automatico e delle sue applicazioni pratiche, su homolaicus.com. URL consultato il 18 maggio 2011.
  4. ^ Babbage, Charles. "On the mathematical powers of the Calculating Engine (1837)." Randell [Ran82l] (1973): 19-54.
  5. ^ Macchina analitica di Babbage, su ulisse.bs.it. URL consultato il 18 maggio 2011.
  6. ^ Analytical Engine, su meccano.us.
  7. ^ Report of the British Association for the Advancement of Science, su biodiversitylibrary.org.
  8. ^ (EN) Babbage, Sciencemuseum.org.uk. URL consultato il 2 agosto 2011.
  9. ^ (EN) The Babbage engine, Computerhistory.org. URL consultato il 2 agosto 2011.
  10. ^ Nineteenth century science: a selection of original texts, su books.google.com. URL consultato il 2 agosto 2011.
  11. ^ Charles Babbage, su encyclopedia.com. URL consultato il 2 agosto 2011.
  12. ^ Marcello Morelli, Dalle calcolatrici ai computer degli anni cinquanta, FrancoAngeli.
  13. ^ a b Charles Babbage, La macchina analitica: un secolo di calcolo automatico, ETAS Kompass libri, 1973.
  14. ^ William Gibson & Bruce Sterling - La macchina della realtà, su ebookland.altervista.org. URL consultato il 18 maggio 2011.

Altri progetti[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]