Dataprogrammering: Et verdensspr?k ble skapt i Oslo

Tusenvis av dataspr?k er blitt lagd de siste femti ?rene – men knapt noen s? epokegj?rende som norske Simula fra 1967.

Av Trine Nickelsen
Publisert 20. nov. 2017

SLOSS: Det kunne g? livlig for seg da Simula ble til: En nyansatt p? Norsk Regnesentral l?p en gang bestyrtet ned til sentralborddamen for ? gi beskjed om at det sto to menn og sloss foran en tavle i annen etasje. Damen gikk ut for ? lytte og svarte straks at "Neida, det er bare Dahl og Nygaard som diskuterer Simula." Fra venstre: Bj?rn Myrhaug, Sigurd Kubosch, Kristen Nygaard og Ole-Johan Dahl. (Foto: Ukjent/Norsk Regnesentral)

Det er interessant hvordan et lite forskningsprosjekt – for det meste best?ende av bare to personer – kunne lage et programmeringsspr?k og et sett av begreper s? kraftfulle, at det femti ?r senere ligger under det meste av programvareutviklingen i verden, sier professorene Stein Krogdahl og Arne Maus p? Institutt for informatikk ved Universitetet i Oslo.

– De utarbeidet ikke bare et nytt programmeringsspr?k, men en helt ny m?te ? tenke p?.

I dag bruker programutviklere over hele verden Simulas metodikk. De modellerer verden slik Kristen Nygaard og Ole-Johan Dahl gjorde for et halvt ?rhundre siden.

GENIALE: – De utarbeidet ikke bare et nytt programmeringsspr?k, men en helt ny m?te ? tenke p?. Kristen Nygaard og Ole-Johan Dahl  var to eksepsjonelt talentfulle forskere – ekstremt godt skolerte og med det beste internasjonale kontaktnettet, sier Stein Krogdahl.  (Foto: UiO)

– Ja, s? forut for sin tid var det de gjorde, at det skulle g? tjue ?r f?r de sentrale begrepene de brukte, ble allment forst?tt, p?peker Krogdahl.

Men hvordan var det mulig ? gj?re noe s? nyskapende, og hva var egentlig Dahl og Nygaards geniale bidrag? La oss begynne med begynnelsen. Vi skal til Forsvarets forskningsinstitutt p? Kjeller utenfor Oslo.

Enorme utregninger

?ret er 1948. Den unge studenten Kristen Nygaard er nettopp kommet for ? gj?re siviltjenesten sin. Krigen er slutt og Norge satser sterkt p? atomforskning. Det voldsomme energipotensialet skal utnyttes til sivilt bruk. P? Kjeller er arbeidet i gang med ? bygge opp den f?rste norske atomreaktoren.

Nygaard f?r i oppdrag ? regne ut diameter p? uranstavene i reaktoren. Denne er avgj?rende for ? oppn? riktig mengde atomspaltinger, som i neste omgang gir den riktige energiutviklingen. Er diameteren for liten, blir det ingen kjedereaksjon blant n?ytronene i det radioaktive uranet, og prosjektet blir en fiasko. Er den for stor, vil en katastrofe skje.

Dette var f?r de elektroniske datamaskinene, s? beregningene m?tte stort sett gj?res for h?nd. Metoden var ? beskrive den fysiske prosessen inne i reaktoren. Forskerne kunne simulere banene og kollisjonene til et stort antall tilfeldige n?ytroner og lage statistikk over hvordan disse oppf?rte seg samlet. Dette kaltes gjerne ‘Monte Carlo-simulering’ siden tilfeldighet spiller en viktig rolle i metoden.

Etter hvert sitter seks-sju mennesker og regner p? slike n?ytronbaner i flere m?neder p? fulltid. De regnet ?penbart riktig. Reaktoren virker som den skal da den skrus p? i 1951.

Det var p? denne tiden, da de aller f?rste datamaskinene begynte ? komme, at Nygaard kjente behovet for en egen notasjon, eller et ‘spr?k’ som, p? en mer overordnet m?te, b?de kunne beskrive slike simuleringer p? en m?te som var lettere ? forst? for mennesker, og ogs? slik at maskiner kunne utf?re dem rett ut fra beskrivelsen.

Simulere virkeligheten

?ret er blitt 1960. Kristen Nygaard er forskningssjef p? det nyetablerte forskningsinstituttet Norsk Regnesentral – og overtaler vennen og kollegaen, Ole-Johan Dahl, til ? f?lge med. Nygard er systemteoretikeren. Dahl er blant de aller fremste programmererne og behersker til fulle alle de detaljer dette innebar den gangen. Sammen skulle de komme til ? sprenge grenser.

Samarbeidet bar raskt frukt. I 1961 innledet de et formelt 澳门葡京手机版app下载 om et slikt simuleringsspr?k som Kristen s? for seg. Allerede i 1962 var skissen klar til et spr?k de kalte Simula (forkortelse for SIMUlation LAnguage). Dette spr?ket, n? ofte referert til som Simula 0, presentere de p? en konferanse i München samme ?r. Men Nygaard og Dahl fikk snart nye ideer, og denne f?rste versjonen ble derfor aldri implementert. 

Tanken var opprinnelig at Simula skulle bygge p? det nylig etablerte spr?ket Algol 60, utviklet i Europa. Men det viste seg at ved ? bryte kraftigere med den grunnleggende filosofien bak dette spr?k-et, noe som blant annet hadde med lagringsplass ? gj?re, s? kunne en oppn? et mye mer fleksibelt spr?k. P? dette grunnlaget utformet de s? et mer generelt spr?k for simulering. Det var ferdig implementert og klart til bruk i januar 1965 – Simula I.

Det skulle vise seg ? v?re et ypperlig verkt?y for ? beskrive, b?de for mennesker og maskiner, hvordan en simulering skulle foretas – men spr?ket var ogs? helt rettet mot slike beskrivelser. Stein Krogdahl forklarer:

– Det nye spr?ket kunne greit beskrive virkelige situasjoner og hendelser, som jo ofte er temmelig komplekse – som systemer med mange komponenter i kompliserte samspill. Samtidig kunne alts? et kompilatorprogram oversette en slik beskrivelse til maskinkode som automatisk kunne utf?re simuleringen som den beskrev.

I 1963 skjedde noe viktig: Da fikk Norsk Regnesentral kj?pt den amerikanske stormaskinen Univac 1107 – den nest mest avanserte datamaskinen i hele Europa, og de fikk ogs? penger til ? implementere Simula 1 p? denne maskinen.

FILOSOFI: – I Simula ble data og operasjoner beskrevet samlet som to sider av samme begrep: objekt.  Objekter er filosofi. Nygaard var sv?rt interessert i filosofi, forteller Arne Maus.
– Alt i verden best?r av forskjellige objekter. (Foto: Ola S?ther)

Gjennombruddet – Simula 67

Simula 1 var alts? et rent simuleringsspr?k, og n?r kompilator-en for dette var klar i januar 1965, ble spr?ket tatt i bruk til simuleringsoppgaver, b?de ved Regnesentralen selv og av andre rundt omkring i verden. 

– Disse erfaringene, og ogs? viktige impulser utenfra, gjorde det snart klart at ideene fra Simula 1 kunne generaliseres og ikke minst: danne grunnlag for et spr?k rettet mot programmeringsoppgaver generelt, ikke bare simuleringsoppgaver. Utover h?sten arbeidet de to forskerne hardt, og rundt ?rsskiftet begynte brikkene ? falle p? plass. 

Kristen Nygaard forteller selv mange ?r senere:

?Jeg husker veldig, veldig klart, akkurat ?ye-blikket, rundt klokka to om natta ved skrivebordet p? soverommet p? Nesodden, i januar 1967, da begrepet ?nedarving? (eller klasse og subklasse) ble skapt. Jeg skj?nte med én gang at dette var l?sningen p? et viktig problem som Ole-Johan Dahl og jeg hadde kjempet med i m?neder og uker. Jeg inns? ogs? at l?sningen for f?rste gang i et programmeringsspr?k innf?rte en sterk og fleksibel versjon av forestillingene om generalisering og spesialisering, med all kraften som ligger i disse begrepene. Og sant nok; nedarving har blitt n?kkelbegrepet i objektorientert programmering, og dermed i programmering generelt.?

En konferanse om simuleringsspr?k skulle holdes p? Lysebu i Oslo i mai. Dahl og Nygaard arbeidet desperat. De utforsket og testet de nye begrepene. Forskerne kom i m?l. De hadde greid ? lage et konsistent spr?k med alle de nye aspektene, og de sentrale blant disse – klasser, subklasser og dynamisk genererte objekter av disse. De fikk en artikkel ferdig akkurat i tide til konferansen.

 

Verden inn i datamaskinen

Hva var det s? som var s? banebrytende ved det ? tenke i disse begrepene n?r en skal skrive store og komplekse programmer?

– Vi tenker jo om datamaskiner at de f?rst og fremst kan gj?re noe, som for eksempel ? utf?re et stort antall regneoperasjoner p? kort tid. Men dermed kommer dataene vi skal gj?re noe med, mer i bakgrunnen, p?peker Krogdahl.

Med Simula-spr?kene kom det en helt annen symmetri inn i dette. Det var problemstillinger fra simulering som fikk fordelen med dette fram i lyset.

– Innen slik programmering blir det n? plutselig helt opplagt: Vi m? sette opp en verden av ymse typer elementer for ? f? til en fornuftig arena som simuleringen kan utspille seg i. Disse elementene er av forskjellige typer eller klasser, og disse igjen vil forholde seg til hverandre p? spesielle m?ter.

– Hvordan ting skal skje i denne verdenen, vil vi da ofte vente med ? beskrive til det meste av denne ‘datastrukturen’ er p? plass. Da vil det ofte v?re naturlig ? knytte de forskjellige aksjonene til bestemte objekter, og s? tenke at det er disse objekt- ene selv som utf?rer aksjonene. En bil kan ?starte?, ?svinge? eller ?stoppe?, og en kunde kan ?stille seg i en k?? eller ?bli ekspedert ved skranken?.

– Dahl og Nygaard hadde innsett at denne symmetrien mellom data og aksjoner ogs? i h?yeste grad var fruktbar for programmering generelt. Ja, at det s?gar kan v?re en fordel ? sette opp datastrukturene f?rst, for s? etterp? ? beskrive det som skal gj?res og avgj?re hvem som skal gj?re hva. Dette kan vi si danner grunntanken i s?kalt objektorientert programmering, p?peker Krogdahl.

To personligheter

– Hvordan greide de det?

– Det var ?penbart, sier Stein Krogdahl og Arne Maus – og gode kilder bekrefter det igjen og ingen: De to var eksepsjonelt talentfulle forskere, ekstremt godt skolerte og med det beste internasjonale kontaktnettet. De utfylte hverandre i forskningsprosessen. Mens Nygaard m? ha v?rt visjon?r og til tider dr?mmende om prosjektets muligheter, var Dahl den mer jordn?re som kunne sette felles ideer ut i livet. Han var den rolige, glupe gutten som kunne h?re p? Kristen, og s? si: Nei, det der virker ikke. Du kan ikke gj?re s?nn.

– De som kjente dem, forteller om to helt forskjellige personligheter. Kanskje var det derfor de lyktes? Begge hadde en ?pen, kritisk tone og var mer enn villige til ? ta livet av den andres ideer. Det var de to, det radarparet der, som sammen greide ? lage dette.

– De var klart originale i forskningen sin – og s? det meste p? helt nye m?ter. Likevel var de del av en lang, europeisk tradisjon innenfor faget.

LES: Hva skjedde etter 1967? Ble Simula en suksess – vitenskapelig og ogs? kommersielt?

Publisert 20. nov. 2017 14:20 - Sist endret 7. nov. 2025 15:10