I primi computer non eseguivano parole come READ, ADD o PAYROLL: comprendevano codici numerici strettamente legati all’hardware. Grace Hopper dedicò la propria carriera a ridurre questa distanza tra intenzione umana e operazioni della macchina.
Il suo contributo non si riduce a una singola invenzione né alla creazione solitaria di COBOL. Programmò uno dei primi grandi calcolatori automatici, guidò lavori pionieristici sulla traduzione dei programmi, sviluppò con il suo team un linguaggio per i dati aziendali e difese la standardizzazione. Il filo conduttore era chiaro: un programma dovrebbe esprimere il problema da risolvere, non le particolarità del computer.
Imparare a programmare prima che esistesse la professione
Grace Brewster Murray nacque nel 1906 a New York. Studiò matematica e fisica al Vassar College e conseguì nel 1934 un dottorato in matematica a Yale. Nel 1943 entrò nella riserva della Marina statunitense e nel 1944 fu assegnata al team di Howard Aiken ad Harvard, che utilizzava l’Harvard Mark I.
Hopper imparò a programmarlo, produsse tabelle per la Marina e partecipò alla redazione del manuale. Il lavoro costrinse il gruppo a formalizzare un’attività nuova: scomporre un problema, organizzare istruzioni, verificare risultati e riutilizzare sequenze.
Cosa racconta davvero la storia della falena
Nel 1947 il team del Mark II trovò una falena bloccata in un relè e la fissò nel registro con una battuta sul primo «actual bug». Hopper non inventò però la parola bug, già usata nell’Ottocento per indicare guasti tecnici, né è dimostrato che abbia rimosso personalmente l’insetto.
Perché A-0 automatizzava parte della programmazione
Nel 1949 Hopper entrò alla Eckert-Mauchly Computer Corporation, poi Remington Rand, che sviluppava l’UNIVAC I. All’inizio degli anni Cinquanta il suo gruppo creò A-0: il programmatore identificava sottoprogrammi disponibili e il sistema ne recuperava il codice, li caricava e ne organizzava l’uso.
Secondo la terminologia moderna A-0 assomiglia anche a un loader e a un linker, quindi è più preciso definirlo uno dei primi sistemi di compilazione. La sua importanza sta nell’idea che un programma possa prepararne automaticamente un altro all’esecuzione.
FLOW-MATIC avvicina il codice al lavoro aziendale
Le applicazioni commerciali leggono file, confrontano record, calcolano totali e stampano rapporti. Hopper voleva una notazione che riflettesse questo vocabolario. Il suo team sviluppò FLOW-MATIC, con istruzioni vicine all’inglese e orientate ai flussi di dati.
La scelta favoriva anche la portabilità: se un’istruzione esprime un’operazione aziendale anziché una peculiarità hardware, un compilatore può tradurla per computer differenti. Questo approccio preparò direttamente le discussioni che portarono a COBOL.
COBOL è una realizzazione collettiva
Nel 1959 produttori, amministrazioni e utenti si riunirono nel CODASYL per definire un linguaggio comune per le applicazioni gestionali. Hopper partecipò alla prima riunione e FLOW-MATIC influenzò fortemente il progetto, ma la specifica COBOL fu prodotta da comitati.
Dire che Hopper inventò COBOL da sola cancella questa cooperazione. Fu una pioniera e promotrice determinante e contribuì in seguito all’adozione e alla standardizzazione. La portabilità permise alle organizzazioni di conservare i programmi al cambiare dell’hardware, spiegando in parte la longevità di COBOL.
La portabilità richiede più di un linguaggio comune
Una specifica non basta. Produttori diversi possono interpretare una regola in modo differente o accettare estensioni incompatibili. Hopper insistette quindi sulla validazione dei compilatori, usando suite di programmi per verificare che un’implementazione riconoscesse le costruzioni previste e ne rispettasse il comportamento.
La continuità è evidente: A-0 automatizza l’assemblaggio di sottoprogrammi, FLOW-MATIC avvicina le istruzioni al vocabolario aziendale, COBOL crea un linguaggio condiviso e i test di validazione cercano di garantire che mantenga lo stesso significato su macchine differenti.
Dalla progettazione dei linguaggi alla standardizzazione
Hopper proseguì la carriera alla Remington Rand e Sperry Rand, pubblicando e formando programmatori. Richiamata in servizio attivo dalla Marina nel 1967, lavorò alla compatibilità e alla verifica dei programmi COBOL su più sistemi.
Rimase in servizio fino al 1986 e si ritirò con il grado di contrammiraglio. Nelle conferenze rendeva concrete le scale informatiche usando, per esempio, pezzi di filo lunghi quanto la distanza percorsa dalla luce in un nanosecondo. Morì nel 1992.
Cronologia
- 1906: nascita a New York.
- 1934: dottorato in matematica a Yale.
- 1943: ingresso nella riserva della Marina statunitense.
- 1944: assegnazione al team Harvard Mark I.
- 1947: scoperta della falena nel Mark II.
- 1949: ingresso alla Eckert-Mauchly e lavoro su UNIVAC.
- 1952: presentazione dei lavori su A-0.
- 1955–1959: sviluppo di FLOW-MATIC.
- 1959: prime discussioni CODASYL.
- 1960: prima specifica COBOL.
- 1967: richiamo in Marina per la standardizzazione di COBOL.
- 1986: pensionamento definitivo come contrammiraglio.
- 1992: morte ad Arlington, Virginia.
Domande frequenti
Grace Hopper inventò il primo compilatore?
Guidò lo sviluppo di A-0, spesso presentato così. La sua funzione corrisponde anche a quella di loader e linker moderni; «uno dei primi sistemi di compilazione» è più preciso.
Creò COBOL da sola?
No. COBOL fu progettato collettivamente dai comitati CODASYL. Le idee di Hopper e FLOW-MATIC ebbero un’influenza diretta e lei contribuì poi ad adozione, validazione e standardizzazione.
Inventò la parola «bug»?
No. Il termine esisteva già per i difetti tecnici. La falena del Mark II generò una battuta memorabile, non il termine.
Perché FLOW-MATIC è importante?
Dimostrò che un linguaggio aziendale poteva usare parole vicine alle procedure reali restando traducibile da una macchina. Influenzò direttamente COBOL.
Perché COBOL esiste ancora?
Molte organizzazioni vi hanno accumulato decenni di regole aziendali collaudate. Sostituirle è costoso e rischioso, mentre la portabilità originaria ha permesso al codice di sopravvivere a più generazioni hardware.
Qual è il legame tra Grace Hopper e John Backus?
Entrambi cercarono negli anni Cinquanta di allontanare la programmazione dal codice macchina. Hopper si concentrò sui dati aziendali con FLOW-MATIC e COBOL; Backus guidò FORTRAN per il calcolo scientifico.