Informatisk julekalender: Luke 11


lørdag 11. desember 2010 Julekalender

hopper

Grace Murray Hopper, også kalt Amazing Grace, var informatiker, kontreadmiral i den amerikanske marinen, og en viktig pioner innen programmering. Hun utviklet bl.a. den første kompilatoren for et programmeringsspråk, og trodde sterkt på konseptet om maskin-uavhengige programmeringsspråk. Denne lidenskapen førte til utviklingen av COBOL, et av de første moderne programmeringsspråkene.

Debugging Mark

Den elektromekaniske datamaskinen ASCC (Automatic Sequence Controlled Calculator) ble oppfunnet av en fyr som het Howard H. Aiken, og ble bygget av IBM. Aiken kunne godt ha fått en egen luke i adventskalenderen, for han og maskinene hans hadde stor betydning.

ASCC, som forresten ikke var en Turingkomplett maskin, ble shippet til Harvard i 1944, hvor den ble brukt til å utføre kalkuleringer for marinen. Den fikk der navnet Harvard Mark I, og har blitt beskrevet som "the beginning of the era of the modern computer" og "the real dawn of the computer age".

Og Amazing Grace var en av de første programmererne på Mark I maskinen.

Mens hun jobbet på etterfølgeren Mark II i 1947 oppdaget hennes kollegaer en møll som satt fast i et relé, og førte til at maskinen feilet. Hopper refererte til det å fjerne møllen som “debugging”. Uttrykket “bug”, brukt om programfeil, startet kanskje ikke hos Hopper, men det var hun som gjorde det populært. Restene av den orginale møllen befinner seg i programmerernes logbok som man kan se på Smithsonian Institution’s Natural Museum of American History i Washington D.C.  

UNIVAC, kompilatoren og COBOL

I 1949 ble Hopper ansatt som senior matematiker i Echert-Mauchly Computer Corporation (luke 10), og ble en del av teamet som utviklet UNIVAC I. Selskapet ble overtatt av Remington Rand corporation på 50-tallet, og det var her hun begynte å utvikle kompilatorer. Kompilatoren var kjent under navnet “A compiler”, og første versjon var A-0.

I 1954 ble Hopper Remington Rand’s første direktør for automatisk programmering, og hennes avdeling publiserte noen av de aller første compilator-baserte programmeringsspråkene, som inkluderte ARITH-MATIC, MATH-MATIC (to etterfølgere av A-0) and FLOW-MATIC (orginalt kalt B-0). Her er et lite eksempel på et FLOW-MATIC-program:

 0) INPUT  INVENTORY FILE=A
           PRICE FILE=B,
    OUTPUT PRICED-INV FILE=C
           UNPRICED-INV FILE=D,
    HSP D.
 1) COMPARE PRODUCT-NO(A) WITH PRODUCT-NO(B)
    IF GREATER GO TO OPERATION 10;
    IF EQUAL GO TO OPERATION 5;
    OTHERWISE GO TO OPERATION 2.
 2) TRANSFER A TO D.
 3) WRITE ITEM D.
 4) JUMP TO OPERATION 8.

 5) TRANSFER A TO C.
 6) MOVE UNIT-PRICE(B) TO UNIT-PRICE(C).
 7) WRITE ITEM C.
 8) READ ITEM A; IF END OF DATA GO TO OPERATION 14.
 9) JUMP TO OPERATION 1.

10) READ ITEM B; IF END OF DATA GO TO OPERATION 12.
11) JUMP TO OPERATION 1.

12) SET OPERATION 9 TO GO TO OPERATION 2.
13) JUMP TO OPERATION 2.

14) TEST PRODUCT-NO(B) AGAINST ZZZZZZZZZZZZ;
    IF EQUAL GO TO OPERATION 16;
    OTHERWISE GO TO OPERATION 15.
15) REWIND B.
16) CLOSE-OUT FILES C, D.
17) STOP. (END)

Som du ser mente Hopper at programmer burde bli skrevet i språk som var tilnærmet lik engelsk – i motsetning til maskinkode eller språk som er nært maskinkode (f.eks. assemblykode).

I 1959 ble det avholdt en konferanse som fikk navnet CODASYL - Conference on Data Systems Languages. Og ut fra denne konferansen ble det utviklet et nytt språk som var en videreutvikling av Hoppers FLOW-MATIC, kombinert med IBM’s tilsvarende språk, COMTRAN. Resultatet ble COBOL, som til dags dato er det mest forretningsrettede språket som har blitt utviklet. Grace Hopper er altså en av designerne bak dette språket, og det forklarer hvorfor hun også har fått tilnavnet “Grandma COBOL”.

Trivia

I 1996 fikk Grace oppkalt et marineskip etter seg. USS Hopper, som også kalles Amazing Grace, er et av svært få amerikanske krigsskip oppkalt etter en kvinne.

Men mest oppsiktsvekkende av alt - Grace Hopper tildeles ofte æren for det kjente sitatet: “Det er lettere  å be om tilgivelse enn å be om tillatelse”.


comments powered by Disqus