Hopper, Grace Murray (1906-1992)

Laureata in matematica e fisica, Grace Murray Hopper insegnava al Vassar College (Poughkeepsie, New York) quando nel 1943 si arruolò in  Marina, e fu assegnata ad un progetto di calcolo presso la Università di  Harvard, dove divenne uno dei primi programmatori del grande calcolatore elettromeccanico Harvard Mark I, sotto la guida di Howard Aiken.

Finita la guerra, ancora nel ruolo di militare della Marina ma in congedo, rimase ad Harvard con Aiken, dove lavorò sul Mark II (un calcolatore comandato da nastro perforato) e sul Mark III (un calcolatore elettronico con memoria a tamburo magnetico).

Nel 1949 venne assunta dalla  Eckert–Mauchly Computer Corporation (assorbita nel 1950 dalla Remington Rand, e diventata nel 1955 Sperry Rand) dove si occupò dello sviluppo del software per  lo UNIVAC .

In quegli anni i programmi erano scritti direttamente in linguaggio binario (spesso usando la notazione ottale, che usa tre bit per ogni simbolo), oppure componendo una sequenza di codici mnemonici (linguaggi Assembler) che venivano convertiti dalla macchina in istruzioni eseguibili.

Grace Hopper, aveva compreso come spesso i programmi fossero composti da numerosi frammenti di codice comune già disponibili (chiamati “routine”) che andavano “assemblati” nella sequenza e con modalità corrette; operazioni che essendo svolte manualmente dai programmatori richiedevano impegno di tempo e implicavano rischio di errori.

Grace Hopper non solo ideò un nuovo linguaggio con una notazione simbolica ottimizzata per  applicazioni di tipo matematico, ma anche   ebbe l’intuizione di usare lo stesso calcolatore per “compilare” i suoi programmi; sviluppò quindi il primo  “programma che scriveva programmi”.  Questo programma aveva la possibilità di incorporare delle routine già disponibili e memorizzate  su nastro magnetico, le “routine”; bastava specificare il codice di ciascuna routine da incorporare, e queste venivano copiate insieme al codice del nuovo programma e sistemate nel giusto ordine, ottenendo come risultato un codice binario eseguibile  che conteneva tutte le istruzioni necessarie. Nel 1952 nacque il primo  primo compilatore, chiamato “A-0”, che poi evolse nelle versioni successive A-1 e A-2. Questo fu il primo compilatore per lo UNIVAC I ad essere effettivamente utilizzato nelle applicazioni degli utenti. 

All’A-2, orientato ad applicazioni di calcolo, seguì un linguaggio dedicato alla elaborazione dati di tipo commerciale, che per facilitarne l’utilizzo da parte di utenti non scientifici utilizzava istruzioni prese dalla lingua inglese: questo linguaggio fu inizialmente chiamato B-0, successivamente rinominato FLOW-MATIC, disponibile nel 1957. I fondamenti di questo linguaggio, e in particolare il concetto di utilizzare termini della lingua inglese, formarono la base da cui evolveranno altri linguaggi, in particolare il COBOL

Sempre convinta che per rendere  più accessibile l’uso dei calcolatori alla vasta fascia di utenti nei settori non scientifici e nelle aziende fosse necessario semplificare la programmazione,  negli anni successivi della sua lunga carriera continuò ad occuparsi di linguaggi e compilatori, contribuendo prima alla definizione del linguaggio COBOL, e successivamente alla sua adozione ed evoluzione.   


Fonti

error: