Vai al contenuto principale
BiografiaStoria dell’informaticaPrincipiante

Grace Hopper: dai primi compilatori a COBOL

Come Grace Hopper contribuì a trasformare la programmazione facendo tradurre istruzioni più leggibili nel linguaggio delle macchine.

Pubblicato 3 agosto 2026Lettura : 5 minDi Yann Bastien
Ritratto storico di Grace Hopper
Mostra indice
  1. Imparare a programmare prima che esistesse la professione
  2. Cosa racconta davvero la storia della falena
  3. Perché A-0 automatizzava parte della programmazione
  4. FLOW-MATIC avvicina il codice al lavoro aziendale
  5. COBOL è una realizzazione collettiva
  6. La portabilità richiede più di un linguaggio comune
  7. Dalla progettazione dei linguaggi alla standardizzazione
  8. Cronologia
  9. Domande frequenti
  10. Grace Hopper inventò il primo compilatore?
  11. Creò COBOL da sola?
  12. Inventò la parola «bug»?
  13. Perché FLOW-MATIC è importante?
  14. Perché COBOL esiste ancora?
  15. Qual è il legame tra Grace Hopper e John Backus?

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.

Questo articolo ti è stato utile?

Fonti e riferimenti

  1. 1.Naval History and Heritage Command - Grace Murray Hopper
  2. 2.Smithsonian - Grace Hopper: The Navy and Computers
  3. 3.Computer History Museum - Grace Murray Hopper
  4. 4.Computer History Museum - Oral History of Grace Hopper
  5. 5.Smithsonian - Log Book With Computer Bug

Raccolta

Linguaggi di programmazione

1 / 26

  1. 01Grace Hopper: dai primi compilatori a COBOL
  2. 02John Backus: FORTRAN, la notazione BNF e il rifiuto del codice macchina
  3. 03Dennis Ritchie: il linguaggio C al cuore di Unix
  4. 04FORTRAN: dimostrare che un compilatore può competere con l'assembly
  5. 05Il linguaggio C: rendere portabili i sistemi senza nascondere la macchina
  6. 06Niklaus Wirth: da Pascal a Oberon, progettare con la semplicità
  7. 07Bjarne Stroustrup: progettare C++ senza rinunciare alle prestazioni
  8. 08Pascal: imparare a programmare rendendo visibile la struttura
  9. 09C++: da C with Classes al C++ moderno
  10. 10Programmazione orientata agli oggetti: oggetti, messaggi e astrazioni riutilizzabili
  11. 11Guido van Rossum: creare Python per rendere il codice leggibile
  12. 12Brendan Eich: JavaScript, dal prototipo Netscape allo standard del Web
  13. 13James Gosling: l'ingegnere all'origine di Java
  14. 14Python: leggibilità, batterie incluse e un ecosistema globale
  15. 15Java: scrivere una volta, eseguire ovunque
  16. 16JavaScript: il linguaggio che ha reso interattivo il Web
  17. 17Ken Thompson: da Unix a Go, la semplicità come metodo
  18. 18John McCarthy: Lisp e l'idea di programmare con i simboli
  19. 19Alan Kay: Smalltalk e il computer come medium personale
  20. 20Barbara Liskov: l'astrazione che ha reso modulare il software
  21. 21Robin Milner: ML, dimostrazione assistita e linguaggi dell'interazione
  22. 22Brian Kernighan: AWK, Unix e l'arte di spiegare il codice
  23. 23Anders Hejlsberg: da Turbo Pascal a C# e TypeScript
  24. 24Larry Wall: Perl, il linguaggio che ha collegato gli strumenti di Internet
  25. 25Yukihiro Matsumoto: Ruby e la felicità del programmatore
  26. 26Rasmus Lerdorf: PHP e la democratizzazione del Web dinamico
BiografiaStoria dell’informaticaPrincipiante

Dennis Ritchie: il linguaggio C al cuore di Unix

Come Dennis Ritchie progettò il linguaggio C e contribuì a Unix, due fondamenta che resero il software di sistema più portabile.

3 agosto 20267 min