Simula: fra Norsk Regnesentral til Turing-prisen

Simula: programmeringsspråket fra Oslo som oppfant klassen og objektet

Hver gang et program skriver «class» eller «extends», bruker det en idé to nordmenn utviklet for å simulere en fabrikk på 1960-tallet – lenge før noen kalte det objektorientert programmering.

Programmet som skulle simulere en fabrikk, ikke skrive kode

Kristen Nygaard jobbet med å modellere kompliserte systemer – en fabrikk, en skipsflåte, en kø av kunder – og se hvordan de oppførte seg over tid. Problemet var at ingen av programmeringsspråkene som fantes tidlig på 1960-tallet, var laget for den jobben. I 1962 sluttet Ole-Johan Dahl seg til arbeidet hans ved Norsk Regnesentral i Oslo, en uavhengig forskningsstiftelse etablert i 1952, og sammen begynte de å bygge et språk for nettopp dette: å simulere hendelser som skjer i rekkefølge, i en verden full av ting som ligner hverandre uten å være identiske. ( Wikipedia – Ole-Johan Dahl ; Wikipedia – Norsk Regnesentral ; Wikipedia – Simula )

Løsningen fikk et navn som beskrev nøyaktig hva den gjorde: Simula. Simula I var fullt operativt på en UNIVAC 1107 innen januar 1965. Men det som gjorde språket til noe mer enn et regnesentralverktøy, var måten Dahl og Nygaard løste simuleringsproblemet på. De lot programmereren beskrive en type ting – en klasse – én gang, og deretter lage så mange eksemplarer av den, objekter, som simuleringen trengte. Et objekt kunne arve egenskaper fra en annen klasse og likevel oppføre seg annerledes i praksis, gjennom det de kalte en virtuell prosedyre: et løfte om at objektet selv avgjør hvordan det svarer, ikke koden som spør. ( Wikipedia – Simula )

Tenk deg at du skal simulere trafikken i en havn: mange skip, hvert med egen last, fart og rute, som alle skal inn og ut av samme kaiplasser. Før Simula måtte programmereren skrive separat kode for hvert skip, eller presse dem inn i strukturer som ikke egentlig lignet skip i det hele tatt. Med en klasse holdt det å beskrive «et skip» én gang – hvilke egenskaper det har, hva det kan gjøre – og så be programmet lage så mange skipobjekter simuleringen trengte, hvert med sine egne verdier. Et fraktskip kunne arve alt et skip er, og likevel legge til eller endre noe eget, uten at resten av programmet måtte skrives om.

Uttrykt med dagens ord er dette objektorientert programmering. Nygaard og Dahl fant den ikke opp for å lage et paradigme. De fant den opp for å få en simulering av en fabrikk til å gå opp.

Fra Lysebu til hele verden

Den videreutviklede utgaven, Simula 67, ble presentert på en IFIP-konferanse i Oslo i mai 1967 og formelt standardisert i februar 1968. Nå var klasser, objekter, arv, virtuelle prosedyrer og korutiner – flere kjøreforløp som kan veksle på å ha kontrollen – samlet i ett allmennspråk, ikke lenger bare et simuleringsverktøy. Språket hadde til og med automatisk søppelinnsamling, lenge før det ble en selvfølge i andre språk. ( Wikipedia – Simula )

Ingen andre programmeringsspråk fikk navnet Simula, men ideen forlot Oslo og dukket opp under andre navn overalt. Bjarne Stroustrup har pekt på Simula som den viktigste påvirkningen på C++; James Gosling har sagt det samme om Java. Smalltalk bygde videre på de samme ideene, og førte dem inn i enda flere språk etter seg. ( Wikipedia – Simula ) Hver gang et program i dag skriver «class», «extends» eller «override», låner det et begrep to nordmenn definerte for en flåtesimulering på 1960-tallet.

Anerkjennelsen kom sent, og varte kort

Det tok nesten 35 år før verden formelt anerkjente hva Dahl og Nygaard hadde gjort. I 2001 og 2002 fikk de to både IEEE John von Neumann-medaljen og Turing-prisen fra ACM, ofte kalt databehandlingens Nobelpris, begge for arbeidet med objektorientert programmering gjennom Simula I og Simula 67. Nygaard var også utnevnt til Kommandør av St. Olavs Orden i 2000. ( UiO – Ole-Johan Dahls utmerkelser ; Wikipedia – Norsk Regnesentral ; UiO – Hyllest til Kristen Nygaard )

I 2001 ble også Simula Research Laboratory opprettet i Oslo, oppkalt etter språket nettopp for å hedre det Dahl og Nygaard hadde bygget. Instituttet driver fortsatt i dag, med forskning på blant annet kommunikasjonssystemer, vitenskapelig databehandling og programvareutvikling – navnet er hentet fra et språk skrevet for en fabrikksimulering, men jobben det gjør i dag, strekker seg langt forbi det. ( Wikipedia – Simula Research Laboratory )

Anerkjennelsen fikk de ikke lenge glede av. Ole-Johan Dahl døde 29. juni 2002, sytti år gammel. Kristen Nygaard døde av hjerteinfarkt 10. august samme år, syttifem år gammel. Begge rakk å bli feiret internasjonalt for arbeidet sitt, men bare med noen måneder til overs. ( Wikipedia – Ole-Johan Dahl ; Wikipedia – Kristen Nygaard )

Hvorfor navnet forsvant, men ideen ble værende

Simula ble aldri et språk folk skrev store produksjonssystemer i utenfor forskningsmiljøene. Det var C++ og Java, bygget på de samme ideene tiår senere, som traff industrien for alvor. Det er trolig derfor navnet Simula i dag er kjent for informatikere og teknologihistorie-interesserte, men ikke for folk flest – mens ordene språket ga oss, klasse, objekt, arv, er blitt så innarbeidet at de færreste tenker på dem som en oppfinnelse i det hele tatt, langt mindre en norsk en.

Det er kanskje den mest presise oppsummeringen av det Dahl og Nygaard fikk til: ikke at de laget et språk som ble stort, men at de laget en idé som ble så vanlig at den sluttet å se ut som en idé.

Kilder

Wikipedia – Simula

Wikipedia – Ole-Johan Dahl

Wikipedia – Kristen Nygaard

Wikipedia – Norwegian Computing Center

Wikipedia – Simula Research Laboratory

Institutt for informatikk, UiO – Ole-Johan Dahl: Awards and Honours

Institutt for informatikk, UiO – Tribute to Kristen Nygaard

Kilde: Wikipedia – Simula

Skrevet med kunstig intelligens og kvalitetssikret mot kildene over.

Ingen kommentarer ennå