◷ Storia dell'informatica

ENIAC: come funzionava il gigante elettronico del 1946

ENIAC raccontato con precisione: perché fu costruito, come si programmava con cavi e interruttori e chi furono le sei programmatrici che lo usarono.

ENIAC, acronimo di Electronic Numerical Integrator and Computer, fu presentato al pubblico nel febbraio del 1946 e divenne rapidamente il simbolo della nuova era dei «cervelli elettronici». Era enorme, consumava moltissima energia ed era capace di eseguire calcoli a una velocità mai vista prima. Ma era anche molto diverso da un computer moderno, soprattutto nel modo in cui veniva programmato.

Perché fu costruito

Durante la Seconda guerra mondiale l'esercito degli Stati Uniti aveva bisogno di tavole di tiro: tabelle che indicavano agli artiglieri come puntare un pezzo in funzione della distanza, del tipo di proiettile e delle condizioni. Ogni tavola richiedeva il calcolo di centinaia di traiettorie, ognuna delle quali era un'equazione differenziale da risolvere passo dopo passo.

Il lavoro veniva svolto da squadre di persone, in gran parte donne con formazione matematica, che usavano calcolatrici meccaniche e un analizzatore differenziale. Non bastava: le richieste crescevano più rapidamente della capacità di calcolo.

Il fisico John Mauchly propose di costruire una macchina elettronica. Insieme al giovane ingegnere J. Presper Eckert, presso la Moore School of Electrical Engineering di Filadelfia, ottenne nel 1943 un contratto dal Ballistic Research Laboratory dell'esercito. La costruzione durò fino alla fine del 1945.

Le dimensioni del gigante

ENIAC occupava una grande sala ed era composto da una serie di pannelli disposti a ferro di cavallo. Usava circa 18.000 valvole termoioniche, pesava circa 27 tonnellate e assorbiva una potenza dell'ordine di 150 kilowatt.

La scelta delle valvole era la chiave della sua velocità. I relè, usati nei calcolatori elettromeccanici, dovevano muoversi fisicamente; le valvole commutavano elettronicamente, migliaia di volte più velocemente. Il rovescio della medaglia era l'affidabilità: con così tante valvole, qualcuna si guastava di frequente. Eckert progettò i circuiti in modo che le valvole lavorassero ben al di sotto dei loro limiti, per allungarne la vita.

Un calcolatore decimale

A differenza dello Z3 di Zuse, ENIAC lavorava in decimale. Ogni numero era memorizzato in un accumulatore usando anelli di dieci circuiti elettronici, uno per cifra. La macchina aveva venti accumulatori, che servivano sia a memorizzare numeri sia a sommarli, più unità dedicate alla moltiplicazione, alla divisione e all'estrazione di radice quadrata.

Programmare con le mani

Il punto più importante da capire è che ENIAC, nella sua forma originale, non memorizzava il programma. Non c'era un programma da caricare: la sequenza delle operazioni si realizzava collegando fisicamente le unità con cavi e impostando migliaia di interruttori.

Preparare un nuovo problema significava:

  1. analizzare matematicamente il calcolo e scomporlo in operazioni elementari;
  2. disegnare uno schema dettagliato di collegamenti e impostazioni per ogni unità;
  3. stendere i cavi tra i pannelli e regolare gli interruttori;
  4. verificare il funzionamento e cercare gli errori, sia logici sia dovuti a valvole guaste.

Il lavoro poteva richiedere giorni o settimane, mentre il calcolo vero e proprio durava pochi secondi o minuti. Il rapporto tra tempo di preparazione e tempo di esecuzione era l'esatto opposto di quello che conosciamo oggi.

Le sei programmatrici

Il compito di capire come programmare ENIAC fu affidato a sei donne scelte tra le calcolatrici dell'esercito: Kay McNulty, Betty Jennings, Betty Snyder, Marlyn Wescoff, Fran Bilas e Ruth Lichterman. Non avevano manuali, perché non esistevano. Impararono studiando gli schemi elettrici e parlando con gli ingegneri, e svilupparono tecniche per scomporre i problemi e per individuare gli errori.

Per decenni il loro contributo fu quasi ignorato. Nelle fotografie ufficiali dell'epoca comparivano spesso senza nome, come se fossero modelle in posa accanto alla macchina. Solo in tempi più recenti il loro ruolo è stato riconosciuto come quello di autentiche pioniere della programmazione.

La dimostrazione del 1946 e la vita successiva

Nel febbraio 1946 ENIAC fu mostrato alla stampa con una serie di calcoli dimostrativi, tra cui una traiettoria calcolata più rapidamente del tempo impiegato dal proiettile per percorrerla. La notizia fece il giro del mondo.

Nel 1947 la macchina fu trasferita all'Aberdeen Proving Ground, nel Maryland. Nel 1948 fu modificata per eseguire programmi memorizzati in forma semplificata, usando le tavole di funzione come memoria di istruzioni: da allora cambiare programma divenne molto più rapido. ENIAC rimase in servizio fino al 1955.

La questione del brevetto

Eckert e Mauchly lasciarono la Moore School nel 1946 e fondarono una propria azienda, da cui nacque UNIVAC. Il brevetto su ENIAC, concesso negli anni Sessanta, fu dichiarato non valido da un tribunale federale nel 1973, nella causa tra Honeywell e Sperry Rand. Tra le motivazioni c'era il fatto che Mauchly aveva conosciuto il lavoro di John Atanasoff, che con Clifford Berry aveva costruito un calcolatore elettronico specializzato per la soluzione di sistemi di equazioni lineari.

Che cosa rappresenta ENIAC

ENIAC dimostrò che il calcolo elettronico su larga scala era possibile e utile. Allo stesso tempo, le difficoltà di programmazione spinsero i suoi stessi progettisti a cercare un'architettura migliore, nella quale il programma fosse conservato in memoria come i dati. Quell'idea, discussa già durante la costruzione di ENIAC, avrebbe definito i computer da lì in poi.

In sintesi

  • ENIAC fu costruito per calcolare tavole di tiro e presentato al pubblico nel febbraio 1946.
  • Usava circa 18.000 valvole, lavorava in decimale e pesava circa 27 tonnellate.
  • Nella forma originale si programmava con cavi e interruttori, senza programma memorizzato.
  • Sei programmatrici impararono a programmarlo senza manuali; il loro ruolo è stato riconosciuto solo molto più tardi.
MM
Marco Marzaduri

Marco Marzaduri si occupa di cybersecurity, informatica forense e sviluppo web. Laureato in informatica e in psicologia, unisce l'analisi tecnica alla comprensione del fattore umano.

Leggi anche