L’ammiraglio Grace Hopper, nata Murray, ha sviluppato tra il 1944 e il 1960 le tecnologie fondamentali che permettono agli umani di comunicare con i computer:

  • librerie di subroutine,
  • codice sorgente,
  • ramificazione del software,
  • routine di debugging,
  • documentazione software,
  • compilatori

 

Queste tecnologie sono state in seguito incorporate da tutti i futuri linguaggi di programmazione di alto livello.

E’ grazie ad ‘Amazing Grace’ se l’informatica è quello che è.

Nata nel 1906, si laurea al Vassar College in fisica e matematica e nel 1934 consegue un PhD in matematica a Yale. Insegna matematica a Vassar, salvo dimettersi per arruolarsi in marina nel 1943 (grazie ad una doppia esenzione: è infatti troppo gracile e troppo anziana per gli standard della Navy). La marina la assegna a un progetto all’università di Harvard nello staff di programmazione di MarkI, il più potente calcolatore elettro-meccanico dell’epoca. Il gruppo, diretto da Howard Aiken, si occupa soprattutto del calcolo delle traiettorie dei missili.

MarkI è un bestione lungo 18 metri e alto 2,5, pesa 5 tonnellate e consta di 750.000 parti (relay, interruttori, parti rotanti..). E’ in grado di computare tre operazioni al secondo (3 Hz), è il primo computer general purpose ed è programmabile. La programmazione di Mark I è il compito di Grace, che non ha ovviamente mai visto un computer in vita sua.

Ma la signora è molto sveglia e impara presto, anche perché capisce fin da subito che per programmare Mark bisogna imparare a conoscere bene l’hardware. Infatti la programmazione viene fatta in linguaggio macchina (un compito noioso e che induce a commettere errori) a base di istruzioni in codice binario e di riconfigurazioni manuali dell’Hardware. Non ci sono manuali né documentazione.

Hopper ben presto si accorge che si continua a scrivere lo stesso codice per fare le stesse cose: comincia quindi a accumulare procedure software e a richiamarle quando le servono, invece di riscriverle ogni volta: sono le librerie di subroutine. Comincia anche a scrivere la documentazione del codice che sviluppa, in modo che altri programmatori possano intervenire nel lavoro. Tutto ciò semplifica il processo e lo rende più spedito.

Intanto Hopper comincia a pensare che il linguaggio di programmazione dovrebbe essere il più simile possibile al linguaggio naturale, per poi venir compilato in linguaggio macchina automaticamente dal computer stesso: sono i principi della programmazione automatica, dei compilatori e del codice sorgente.

Dopo la guerra Grace viene assunta in EMCC al gruppo che lavora alla programmazione di Univac.

Univac è il primo computer elettronico general purpose destinato alla commercializzazione.

E’ qui che Hopper sviluppa il primo compilatore vero e proprio (A-0) e i primi programmi basati su compilatori come MATH-MATIC and FLOW-MATIC. L’idea di base è che i programmi vengano scritti in linguaggio più o meno naturale (inglese, o altre lingue) e poi convertiti in linguaggio macchina dai compilatori.

Ciò rappresenta un’enorme semplificazione e democratizzazione del software: per scrivere codice non è più necessario saper manipolare in modo molto sofisticato simboli matematici, ma è sufficiente conoscere un numero limitato di comandi in lingua inglese.

L’altra idea fondamentale di Grace è quella di utilizzare i computer per altro che non sia il calcolo matematico, ad esempio per applicazioni di business.

E’ partendo da questa illuminazione che, dalla fine degli anni ’50, si sviluppa, a partire da flow-matic, il COBOL (common business oriented language), che resta il più diffuso linguaggio di programmazione fino a fine degli anni ’90 del secolo scorso.

Nel 1966 viene mandata in pensione per limiti di età, ma viene subito richiamata e fino al ’77 è a capo del gruppo di sviluppo software della marina, col grado di capitano. Viene poi promossa a ammiraglio e si ritira definitivamente nel 1986 a 80 anni.
Non contenta va a lavorare per DEC fino alla morte, che ha luogo nel sonno all’età di 85 anni.


RINGRAZIAMO PER IL CONTRIBUTO PAOLO RICCARDO FELICIOLI