CULTURA
Pionieri e sperimentatori: la grande corsa degli anni '30 e '40. Poi scoppia la guerra
di Pietro Greco
Colossus, image in Public Domain via Wikimedia Commons
Questi sono gli anni in cui a effettuare un salto di qualità sono i computer analogici. Tra i protagonisti di questo sviluppo c’è l’americano Vannevar Bush. Alla fine della Prima guerra mondiale vi sono numerosi centri di sviluppo dell’ingegneria elettrica negli Stati Uniti, tra cui, i principali, sono: i Bell Telephone Laboratories, nati nel 1925 quando il dipartimento di ricerca della American Telephone and Telegraph (AT&T) fu trasformato in un gruppo autonomo; la General Electric, fondata nel 1892, che ormai che si occupa non solo di elettricità ma anche di telecomunicazioni; il Massachusetts Institute of Technology (MIT), un’università privata nata nel 1861 per favorire lo sviluppo delle scienze applicate all’industria con particolare attenzione alle tecnologie innovative.
Vannevar Bush e il Differential analyzer
È in questi centri che, nel corso degli anni ’20, ingegneri e matematici si incontrano per affrontare insieme gli aspetti fondamentali connessi all’uso, in ogni campo, dell’elettricità. Tra loro c’è, appunto, Vannevar Bush. Terzo di sette figli (primo maschio), Bush è nato a Everett, nel Massachusetts, l’11 marzo 1890. Il padre è pastore universalista. Vannevar frequenta le scuole superiori, l’high school, a Chelsea, dove si diploma a 19 anni, dove si distingue in particolare per la sua speciale attitudine per la matematica. Si iscrive poi alla facoltà di ingegneria del Tufts College: l’università, privata, nei pressi di Boston dove aveva già studiato il padre. In capo a quattro anni, nel 1913, consegue sia il bachelor’s degree, la laurea breve, sia il master’s degree, il titolo che viene assegnato agli studenti che hanno approfondito con successo un ambito di studi particolare. Con la tesi di master il giovane realizza la sua prima invenzione, uno strumento – che battezza “profile tracer”, il tracciatore di profilo – in grado di fornire un significativo aiuto ai geometri, perché calcola in maniera automatica l’altezza del terreno e ne elabora, appunto, il profilo. Nel 1917 il giovane Bush consegue il dottorato in ingegneria sia presso il Massachusetts Institute of Technology (MIT) sia presso la Harvard University. Ma è tempo di guerra e, in quel medesimo anno, l’ingegnere inizia a lavorare a progetti di interesse militare, come la messa a punto di tecniche per il rilevamento dei sottomarini. È per questo che entra a far parte del National Research Council degli Stati Uniti d’America.
Dopo la guerra gli interessi di Bush sono ormai rivolti ai processi automatici. In breve diventa uno dei grandi pionieri dei computer analogici, come, per esempio, quello in grado di controllare 1.000 impronte digitali al minuto che l’ingegnere realizza e propone, sia pure senza successo, all’FBI. Ma è nel 1925 che Vannevar Bush, con alcuni collaboratori del Massachusetts Institute of Technology, progetta il “Differential Analyzer”, che sarà messo a punto nel 1927. Si tratta di una macchina automatica – un computer meccanico – capace di risolvere equazioni differenziali complesse, anche a 18 variabili indipendenti. È questo il primo computer analogico mai costruito che abbia un uso pratico. Il Differential Analyzer, infatti, funziona in maniera soddisfacente e così ne vengono prodotti una decina di esemplari, uno dei quali viene utilizzato dall’esercito americano per calcoli balistici fino all’inizio degli anni ’50.
Vannevar Bush, Office for Emergency Management, 1940s, Public Domain via Wikimedia Commons
Quando Lord Kelvin aveva progettato la sua macchina, pensava che potesse risolvere l’integrale del prodotto di due funzioni: chiamiamole f1(x) e f2 (x). L’integrale, lo diciamo a beneficio del lettore che sa poco di matematica, altro non è che l’area sottesa a una curva. Dunque Lord Kelvin voleva che la sua macchina fosse in grado di calcolare l’area sottesa alla curva generata dal prodotto f1(x)f2(x). Vannevar Bush è interessato a risolvere i problemi di tipo elettrico, che spesso coinvolgono funzioni sinusoidali, quelle che descrivono un’onda per intenderci. Jean Baptiste Joseph Fourier aveva dimostrato, all’inizio del XIX secolo, che ogni onda, per quanto complicata, può essere descritta come la somma di semplici onde armoniche, e dunque, matematicamente, come lo sviluppo di una serie. Utilizzando la matematica relativamente sofisticata – lo sviluppo in serie di Fourier – dunque, Bush mette a punto una macchina capace di risolvere le equazioni differenziali che interessano gli ingegneri che si occupano di questioni elettriche. Per esempio calcolare come in un circuito variano la corrente e il voltaggio in funzione del tempo. Dopo il 1927, la General Electric e Bush mettono a punto un analizzatore differenziale non puramente meccanico, ma fornito anche di azionamenti elettrici. Il primo verrà istallato nel 1940 alla University of California. La presenza dell’elettricità in un computer costituisce una novità. Stanno per nascere nuovi tipi di macchine da calcolo, elettromeccaniche. Ma occorrono uno o più giorni per impostarla, la macchina di Bush. L’ideale di Leibniz è ancora lontano.
Così scrive esplicitamente l’ingegnere nel 1931:
Lo stato attuale della fisica e dell’ingegneria è particolarmente favorevole allo sviluppo [di calcoli per la soluzione dei problemi dell’ingegneria elettrica]. L’ingegneria elettrica, per esempio, che ha affrontato nel corso della sua storia problemi che coinvolgono sostanzialmente reti lineari, sta ora rapidamente introducendo in questi metodi elementi la cui caratteristica saliente è la non-linearità ed è abbastanza sconcertata dalla matematica necessaria. I fisici matematici hanno trovato continuamente ostacoli nella complessità piuttosto che nella profondità delle equazioni che essi usano. […] Nessuna macchina e nessun programma di sviluppo può soddisfare queste necessità. […] Vi è molto lavoro da fare prima che possa essere pienamente realizzato l’ideale di Leibniz.
Fino al 1942 il gruppo di Vannevar Bush al MIT di Boston ancora lavora ad aumentare la velocità di calcolo dell’analizzatore differenziale cercando soluzione di tipo elettrico ai problemi meccanici. Grazie anche al contributo di Samuel H. Caldwell e alla realizzazione di macchine, appunto, elettromeccaniche, i tempi di programmazione e di risposta del computer analogico si riduce a tempi compresi tra 3 e 5 minuti. Ma questi indubbi progressi valgono a poco, perché sono ormai arrivati i computer digitali elettronici.
Konrad Zuse, Wolfgang Hunscher, Dortmund, CC BY-SA 3.0 via Wikimedia Commons
Konrad Zuse e lo sviluppo delle macchine tedesche
Nel 1930 a New York viene pubblicata una rivista, Electronics, che intende prendere atto di una nuovo settore della tecnologia, che diventerà nota, appunto, come elettronica e che è fondata sulla emissione e il trasferimento di elettroni utilizzando congegni ormai in uso nei settori della radiofonia e in quello nascente della televisione: i tubi a vuoto e i diodi. L’elettronica – questa è l’idea – può essere molto utile per lo sviluppo delle macchine che devono calcolare, evitando le complicazioni della meccanica. Tra i primi a cercare di metterla in pratica, questa idea, c’è in Germania Konrad Zuse, matematico dell’Università di Saarbrucken. Tra il 1935 e il 1938 il tedesco progetta con alcuni colleghi e realizza, nella cantina di casa dei genitori, che sono alquanto sbigottiti, una prima macchina calcolatrice elettromeccanica (chiamata Z1) programmabile, sia pure in maniera limitata. Il programma è scritto su un nastro perforato da 1.550 bit (il bit, come vedremo, è l’unità di misura dell’informatica). Nel 1939, invece, decide di utilizzare i relè telefonici per accendere o spegnere i circuiti e mette a punto la Z2, uno dei primi esempi di computer elettromeccanici di questo tipo. Nel 1941 il nuovo e decisivo progresso: Zuse realizza la Z3, considerato il primo computer digitale moderno: è elettromeccanico, è completamente automatico e programmabile, usa il sistema numerico binario, la virgola mobile, il nastro perforato. È in grado di effettuare una moltiplicazione in non più di 3 o 4 secondi.
Zuse è un informatico quasi del tutto isolato. Ma, nella realizzazione dello Z3, Konrad Zuse è aiutato da Helmut Theodor Schreyer, che gli consiglia di utilizzare la tecnologia elettronica per realizzare la macchina calcolatrice. Schreyer cerca anche di avvisare le autorità tedesche per ottenere finanziamenti e sviluppare la nuova tecnologia. Ma le autorità naziste rispondono che il progetto non è strategicamente rilevante. Lo sviluppo del computer elettronico non si farà in Germania, ma in Gran Bretagna e negli Stati Uniti.
Alan Turing, da Colossus a ACE
Un passo decisivo a livello teorico è quello compiuto nel 1936, come abbiamo detto, da Alan Turing, un giovane logico di 24 anni appena, che è alle prese con uno dei problemi di David Hilbert: il problema della decidibilità. Ovvero: la logica può essere descritta con una funzione calcolabile con mezzi finiti? Turing pubblica un articolo, On computable numbers, in cui è descritta una macchina calcolatrice “general purpose”, capace in linea di principio di risolvere ogni problema matematico. La macchine diventerà famosa come “macchina di Turing”. Il giovane logico immagina che la macchina legga su un nastro continuo le istruzioni contenute in una prima unità e le esegua, per poi passare alla seconda unità. Non entriamo nei dettagli, diciamo solo che, contrariamente a quanto si attendeva Hilbert, la risposta data (e dimostrata) da Turing è un secco no. Ma questi temi appartengono a quelli sui “fondamenti della matematica” che esulano dallo scopo di questo scritto.
Il bello è che, per rispondere alla domanda di Hilbert, il giovane inglese immagina una “macchina universale” capace di manipolare simboli. La “macchina universale di Turing” è del tutto astratta, costituita com’è da un nastro infinito e mobile in entrambe le direzioni diviso in tante caselle, ciascuna delle quali può contenere uno solo di un insieme finito di simboli. Il nastro è la memoria della macchina. In ogni istante la macchina vede una casella e si trova in uno solo di tutti gli stati finiti possibili. La macchina può leggere con una testina il simbolo in una casella e, seguendo istruzioni o “tavole di comportamento”, può sia mutare simbolo, sia spostarsi a destra o a sinistra, cambiando così stato. La macchina può dunque trovarsi di volta in volta in ciascuno degli stati possibili. «La mia tesi – scrive Turing – è che queste operazioni includono tutte quelle che sono usate nel calcolo di un numero». Dunque la macchina universale di Turing è un computer. La novità proposta da Turing è che una macchina può effettivamente essere codificata con un numero. La sua macchina universale può lavorare anche con due soli simboli, 0 e 1, e seguire una logica binaria. Con questo lavoro il giovane inglese diventa uno dei padri fondatori dell’informatica e del linguaggio dei moderni computer.
La “macchina di Turing” ispirerà la progettazione del primo calcolatore elettronico, che avviene negli Stati Uniti nel 1942. Nel corso della guerra, intanto, Turing dirige la Government Code and Cypher School di Bletchley Park con un obiettivo preciso: decifrare il codice Enigma utilizzato in Germania per inviare messaggi segreti e considerato inespugnabile. Il gruppo interdisciplinare diretto da Turing cresce in maniera imponente: dal centinaio di persone del 1939 ai circa 7.000 del 1944 ed è, insieme al Manhattan Project in corso negli Stati Uniti, uno dei primi esempi di Big Science. Il gruppo realizza Colossus, il primo computer elettromeccanico britannico che, lavorando a grande velocità (nella prima versione tratta 5.000 caratteri al secondo; che salgono a 25.000 nella versione successiva), riesce a calcolare tutte le possibili combinazione di Enigma fino a quando non trova quella esatta. Colossus utilizza 1.500 valvole, pesa una tonnellata e non ha né una memoria né un programma interno. Ma già nel 1942 è in grado di decifrare ogni giorno 4.000 messaggi tedeschi e altrettanti italiani e giapponesi.
Dopo la guerra Turing lavora al National Physical Laboratory dove nel 1946 progetta e nel 1950 mette a punto ACE (Automatic computing engine), un computer dotato di memoria interna e “general purpose”.
Intanto, oltreoceano…
Negli Stati Uniti, intanto, in parallelo con lo sviluppo delle macchine analogiche realizzano numerosi progressi le macchine digitali per il calcolo delle tabelle astronomiche. Nel 1931, per esempio, Wallace J. Eckert mette a punto il Difference Tabulator, una versione moderna del calcolatore di Babbage. Ma siamo ancora lontani dalla potenza di calcolo immaginata da Leibniz. E, infatti, con molta lucidità un giovane fisico, Howard Aiken, appunta nei suoi quaderni i quattro punti ancora da compiere per la realizzazione di macchine utili per la ricerca: la capacità di manipolare numeri negativi, oltre che positivi; la possibilità di utilizzare diverse funzioni matematiche; operazioni completamente automatiche, senza alcun intervento umano; calcoli realizzati nella sequenza naturale degli eventi matematici. La corsa fra diversi gruppi di matematici e ingegneri diventa incessante e gli obiettivi di Eckert ben presto vengono raggiunti.
Da un punto di vista teorico, Claude Shannon nella sua tesi di laurea magistrale del 1938 propone che i calcolatori digitali possano scambiarsi le informazioni attraverso il codice binario, composto solo dalle cifre 0 e 1. L’aspirante dottore definisce anche l’unità base di queste informazioni in codice binario: il bit. La proposta verrà sviluppata in un articolo del 1948 destinato a diventare celebre: Una teoria matematica della comunicazione. Ma già nel 1937, George Robert Stibitz progetta il primo calcolatore che utilizza un linguaggio binario. La macchina parzialmente automatica viene costruita due anni dopo presso i Bell Laboratories. Intanto nel 1938 Aiken, ormai direttore dell’Istituto di matematica ad Harvard, progetta il primo calcolatore elettrico totalmente automatico, anche se “special purpose”: l’Automatic Sequence-Controlled Calculator (ASCC), che verrà poi realizzato nel 1942 dalla IBM. Ancora: nel 1944 la IBM mette a punto il Mark 1, uno sviluppo di ASCC; capace di sommare due numeri di 23 cifre in 0,3 secondi; di effettuare una moltiplicazione i 6 secondi; una divisione in 12 secondi; e anche di risolvere equazioni trigonometriche e calcolare logaritmi e potenze.
Aiken ha anche un altro merito: aver organizzato ad Harvard un laboratorio dove giovani ricercatori potessero formarsi e iniziare a progettare i computer del futuro. Questi risultati e altri ancora vengono ottenuti sempre nell’ambito di macchine elettromeccaniche e per quanto ormai siano in grado di fare diverse operazioni matematiche e siano anche “general purpose”, hanno ancora tutte un limite: la velocità di calcolo. Per quanto crescano le loro dimensioni e la loro sofisticazione, i calcolatori elettromeccanici sono ancora lenti. Tuttavia hanno un merito decisivo: spostano l’interesse dalle macchine analogiche verso quelle digitali.
“ Crescono le dimensioni e la loro sofisticazione, ma i calcolatori elettromeccanici sono ancora lenti
John Vincent Atanasoff è uno di quegli studiosi di origine europea che, a cavallo della Seconda guerra mondiale, consentono agli Stati Uniti di assumere la leadership mondiale nella scienza e nell’innovazione tecnologica. Nato in Bulgaria, nel 1937 insegna matematica allo Iowa State College e vuole che i suoi studenti imparino a risolvere le equazioni differenziali lineari e a calcolare gli integrali. Per questo studia l’analizzatore differenziale di Bush. Ma Atanasoff si convince che realizzando una macchina che rinuncia a ogni parte meccanica, come i relè, e utilizzi solo valvole termoioniche e che utilizzi un linguaggio binario si può aumentare la velocità di calcolo in maniera significativa e risolvere anche quelle equazioni complesse che interessano i fisici.
Atanasoff è il primo non solo a immaginare un computer interamente elettronico con un linguaggio binario, ma anche a tentare di realizzarlo, insieme a Clifford E. Berry, uno degli allievi diventato suo collaboratore. I due mettono a punto prima un prototipo – piuttosto lento – nel 1939, e poi nei tre anni successivi progettano l’ABC (Atanasoff Berry Computer), che nei loro calcoli avrebbe dovuto risolvere un sistema di 29 equazioni algebriche lineari in 29 variabili in appena 15 giorni, invece delle settimane necessarie a chi utilizza le calcolatrici da tavolo. L’ABC è dotato anche di una memoria (condensatori elettrici montati su tamburi rotanti in cui la carica positiva rappresenta 1 e l’assenza di carica 0). Poiché i condensatori tendono a dissipare la carica, Atanasoff e Berry pensano che ABC debba essere dotato anche di un apposito “rigeneratore”. La concreta realizzazione del computer viene però interrotta dall’arrivo della guerra. Ma sarà fonte di ispirazione così stringente per la realizzazione del primo tangibile computer elettronico, di cui parleremo a breve, che nel 1973 la corte distrettuale di Minneapolis decreterà che la primogenitura del computer elettronico debba essere attribuita a John Vincent Atanasoff. La corte dimentica però il computer elettronico messo a punto in Germania da Konrad Zuse e Helmut Schreyer.
Puoi leggere le prime due puntate di questa storia del computer:
Pietro Greco - La storia del computer
Dalle macchine di Charles Babbage ai computer meccanici
Domani pubblicheremo la quarta e ultima parte di questa serie: ENIAC, EDVAC e la nascita dei laboratori di informatica