Genvejsmenu:
S - Indhold
1 - Forside
2 - Aktuelt
3 - Oversigt
4 - Søg

13.05.05   |   kl. 12:38  

Programmeringssprog skal skrives - ikke tales

Professor Peter Naur er en af de centrale arkitekter bag et af verdens første internationale programmeringssprog - Algol. Den danskudviklede Algol-compiler har også dannet forbillede for en lang række oversættere - blandt andet i syntaksen og måden at disponere arbejdslageret på. Allerede som astronom fik han lov at regne kometbaner på en af de første computere i verden - den britiske EDSAC.

Peter Naur er ikke en beskeden mand. Slet ikke. Men han vil ikke fortælle om sine bedrifter. Der er ellers nok at tale om: Den 76-årige professor begyndte som astronom, men blev som ganske ung arkitekten bag Algol-compileren, der har dannet skole indenfor udviklingen af programmeringssprog og har i sin tredje alder som pensionist kastet sig over en tredje og helt ny videnskabelig disciplin: En videnskabelig rekonstruktion af den menneskelige psykologi.

Hvis han endelig skal tale om noget, så taler han helst om de sidste års arbejde med en nyfortolkning af menneskets psyke, hvor hans nyeste bog netop er udgivet på internettet: An anatomy of human mental life, psychology in unideological reconstruction.

Nej, Peter Naur vil ikke tale, kun det skrevne ord gælder. Derfor har han også i flere omgange gennem de sidste par år afvist at lade sig interviewe til PROSAbladet. Alligevel lykkedes det for de gamle kolleger fra Regnecentralen, der har organiseret sig i Dansk Datahistorisk Forening - i daglig tale dataarkæologerne - at lokke Peter Naur til at holde foredrag ved den årlige fødselsdagsfest for Danmarks første computer, DASK, der falder hvert år den 13. februar. Og PROSAbladet var med på en lytter.

Ikke snak - men skrift
- Der er ikke noget som snak til at frembringe myter. Det er sådan, at snak bliver til myter i løbet af et øjeblik, så jeg har en dyb mistillid til snak om tingene. Til interviews og den slags, forklarer Peter Naur indledningsvis. Skal tingene have gyldighed, skal de skrives ned. Derfor henviser Peter Naur i stedet til sin egen bibliografi med en imponerende række videnskabelige artikler og rapporter. Han begyndte allerede at skrive, da han som teenager fik kontakt til Københavns Observatorium på Østervold og begyndte at lave beregninger af kometers bane.

- Det tog jeg som en nyttig skriveøvelse, fordi jeg var klar over, at jeg ville komme til at skrive ret meget i mit liv. Jeg var vel 12 eller 14 år, da jeg fik kontakt med den unge og vidunderligt begavede professor, Bengt Strömgren, der tog mig i hånden og viste mig hele sit institut, siger Peter Naur.

I dag kan det virke besynderligt at begynde med astronomi for at kaste sig over udviklingen af et af verdens første programmeringssprog. De første programmerbare computere blev primært brugt til videnskabelig databehandling. Derfor var det helt naturligt, at astronomer som Peter Naur kastede sig over de første matematikmaskiner, som de blandt andet blev kaldt dengang.

- På det tidspunkt var det kun astronomerne, der vidste noget om beregninger. Fysikerne gjorde det praktisk talt ikke. Det var kun astronomer, der rigtig lavede differensskemaer og beregninger som for eksempel numerisk infinitesimalregning og beregninger, der integrerer bevægelsesligningerne for et legeme i solsystemet. Nu til dags er det helt banalt - al raketforskning laver jo ikke andet, forklarer Peter Naur fra talerstolen på Ingeniørhøjskolen i København under sit foredrag til DASK's 47 års fødselsdag den 13. februar 2005.

Respekten kan nærmest føles i auditoriet
Her er mere end 50 gamle kolleger fra Regnecentralen og andre interesserede mødt op for at lægge øre til Peter Naurs historie. Og respekten for den gamle it-arkitekt er mærkbar i det store auditorium. Allerede som ung medhjælper på Københavns Observatorium hørte Peter Naur om forsøgene på at automatisere beregninger. Forbilledet var de mekaniske regnemaskiner, som briten Charles Babbage arbejdede med allerede i slutningen af forrige århundrede.

- Det var det, Amanuensis Tjernøe prøvede. Desværre var hans perspektiv altså umuligt. Han ville lave det mekanisk. Han troede ikke på det elektroniske. Og i øvrigt kom han aldrig igennem, fordi han fortabte sig i fine, raffinerede detaljer. Noget med minimal gnidningsmodstand, koblinger og sådan noget. Men det var selvfølgelig fascinerende at tale med ham, og det blev klart for mig, at beregninger kunne automatiseres. Selvfølgelig kunne de det. Det var bare hvordan, fortæller astronom og datalogiprofessor Peter Naur og lægger en transparent på overheadprojektoren for at vise de forsamlede dataloger, hvordan den slags beregninger skrives - og dokumenteres.

- Her er et lille uddrag af, hvad der foregik i Astronomisk Beregningscenter. Man regner med logaritmer - alle de tal her er logaritmer til sinus til den vinkel og så videre. Det viser ikke alene præcis, hvordan regningen foregik. Det viser også, hvordan sådan noget bør stilles op på en ordentlig velplanlagt måde. For eksempel står der fire tal der, men de tre nederste summerer man til den der, og de tre øverste summerer man op til den der. På den måde er der orden i tingene, forklarer Peter Naur, mens publikum ikke kan holde latteren tilbage over den ildhu og entusiasme, som Naur lægger for dagen.

- Det er sandelig det, det handler om. Enhver algoritmisk aktivitet er at have orden i tingene. Det lærte jeg, og det fascinerede mig i allerhøjeste grad, tilføjer professor Naur.

Den første danske programmør
I begyndelsen af 50'erne tog Peter Naur til Cambridge og forskede i kometers baner, og der fik han som en af de første danskere overhovedet adgang til det, som må betegnes som verdens første fuldt funktionsduelige og programmerbare computer. EDSAC, som den hed, betyder Electronic Delay Storage Automatic Computer og stod færdig i 1949, så den var ganske ny, da Peter Naur fik mulighed for at prøve kræfter med den.

- Jeg begynder simpelthen at løse nogle af de astronomiske problemer, jeg arbejdede med, på EDSAC. Jeg lavede en stor baneberegning på EDSAC, der integrerer bevægelsen for en lille planet i solsystemet, fortalte Peter Naur.

Danskerens erfaringer med at programmere - eller kode som det kaldtes - en elektronregnemaskine var meget interessante i Danmark, der endnu ikke rådede over sådan en maskine.

- Det resulterede i en redegørelse - en afhandling - om hvordan det var tilrettelagt i maskinen, og da jeg kommer tilbage fra England holder jeg et foredrag i Astronomisk Selskab og fortæller om, hvordan jeg har brugt EDSAC til beregninger, siger Peter Naur, der blev noget forbavset, da legendariske Niels Bohr mødte op for at lytte med.

- Muligvis har det haft en vis betydning for Niels Bohr. Det var meget fremme i de år det der med at bruge datamater.

It-arkitekten var isoleret i den mørke provins
Kort efter rejser Peter Naur videre til USA for at forske videre på et observatorium i Texas, men i lige så høj grad for at erhverve nogle erfaringer med de første elektroniske regnemaskiner, som computere blev kaldt på den tid.

- Jeg fik penge til begge dele. Både astronomi og dels for at se, hvad der foregik på området elektroniske regnemaskiner. Så jeg rejste rundt og snakkede med folk, der havde lavet regnemaskiner, indimellem at jeg sad oppe på toppen af et bjerg i Texas og målte på stjerner, fortæller Naur.
På den måde blev Peter Naur en af de danske pionerer, der var med i de indledende undersøgelser, der skulle afdække, om der var basis for at bygge en dansk regnemaskine. Blandt andet besøgte Peter Naur den svenske BESK-maskine, blandt andre sammen med professor Richard Petersen og civilingeniør Bent Scharøe Petersen.

- I maj 1954 afleverede jeg derfor en rapport om elektroniske regnemaskiner i de tre lande. Her gjorde jeg rede for mine overvejelser over struktur - ikke mindst lagermuligheder og organisering af programmer, fortæller Peter Naur, der efter hjemkomsten til Danmark var flyttet til det nybyggede observatorium i Brorfelde ved Holbæk. Byens lys var begyndt at være generende for observationerne på Østervold i København, så Naur var henvist til den isolerede placering på Vestsjælland. Men herfra supplerede han den arbejdsgruppe, som den danske regering havde nedsat for at udvikle en dansk regnemaskine. Dansk Aritmetisk Sekvens Kalkulator, DASK, som den hed. Peter Naur skrev til lederen af den nystiftede Regnecentralen, Niels Ivar Bech, om sine overvejelser om maskinens hardwaremæssige opbygning, men i særdeleshed også sine synspunkter på et programmeringssprog - eller autokodning, som det blev kaldt.

- Og specielt om manglerne ved den ydre ordrekode på den svenske maskine, som jeg anså for at være forfærdeligt primitive i sammenligning med det, jeg havde oplevet i Cambridge. En dag kom Niels Ivar Bech og Bent Scharøe Petersen endda på besøg i Brorfelde, hvor jeg ivrede for, at vi burde lave det anderledes end på BESK, fortæller Peter Naur.

Mere snak - nye dokumenter
Der var enighed om, at den danske computer i modsætning til den svenske skulle have indeksregistre, men politisk var det nemmere at komme igennem med at kopiere den svenske maskine i alle detaljer. Og Peter Naur var mildest talt ikke begejstret for de kompromisser, der var på vej.

- Man kan diskuterede sådan noget, men hvad kommer der ud af det? Der kom det ud af det, at jeg i stedet for at snakke bare lavede det. Det er den eneste måde, man kan komme igennem med noget som helst. Det er bare at gøre det, fortæller Peter Naur, der i løbet af den næste måneds tid skrev et - med egne ord: "Gennemarbejdet forslag til de ydre ordrekoder med kommentarer og en programmeret skitse til et fejl-diagnosticeringsprogram." Et dokument, som Peter Naur selv betegner som sit væsentligste bidrag til DASK. Han var oprørt over planerne, der kun ville give programmørerne 16 tegn at arbejde med.

- Det var ynkeligt, ynkeligt. På EDSAC-maskinen i Cambridge, jeg havde været vant til i lang tid, havde vi 32 tegn. Altså et fuldt alfabet plus decimalcifre. Her havde vi 16 sølle ting at vælge imellem. Det giver en forfærdelig primitiv måde at kommunikere på, raser Peter Naur og foreslår i stedet, at DASK arbejder med decimale tal i stedet for hexadecimale tal og i øvrigt bygges med en indre ordrekode og en ydre ordrekode, hvor det bliver langt mere frit, hvordan den ydre ordrekode kan beskrives.

- Det forudsætter en oversættelse. Det var det springende punkt, som man i Stockholm overhovedet ikke havde indset. Det her er så en skitse til det første program, der blev skrevet i dette nye sprog, som er en oversætter fra den ydre til den indre kode, fortæller Peter Naur og peger op på tavlen, hvor en ny overhead viser hans skitse.

Danmarks første systemprogrammør, har realiseret ideerne
Samtidig skitserede Naur et program, der kunne overvåge eksekveringen af programmer i computeren. En simulator, der kunne vise, hvorfra og hvortil, der blev hoppet, hver gang der blev skiftet adresse.

- Det hele sendte jeg til behagelig overvejelse i København, og så indtrådte den store stilhed. Jeg fik godt nok et meget overstrømmende svar fra Niels Ivar Bech. Men ellers havde man mere travlt inde i København med at lave tingene end at kommentere mig. Men det vidste jeg jo ikke dengang, griner Peter Naur.

Da selve DASK-maskinen er færdigbygget i en villa i Valby, vælger Peter Naur alligevel at forlade astronomien og observatoriet på Vestsjælland for at blive ansat på Danmarks første it-virksomhed.

- Da jeg træder ind der, så opdager jeg, at Jørn (Jørn Jensen, se Danmarks første systemprogrammør i PROSAbladet nr. 11, 2002, red.) har lavet et pragtfuldt system ud fra de der ideer med overvågning. De hed DASK kontrolprogrammer. Det kørte strålende i maskinen, for det var fantastisk godt organiseret. Det havde alle mulige faciliteter, men manglede beskrivelse, og den måtte jeg så lave, fortæller Peter Naur, der lige er nødt til at forlade talerstolen på Ingeniørhøjskolen for at hilse på Jørn Jensen, der sidder på en af de første rækker i auditoriet.

To nørder - samme tanke
En tidligere medarbejder ved Regnecentralen, Per Brinch Hansen, der kom til i 1963 var imponeret over det ordløse samarbejde, Jørn Jensen og Peter Naur havde:

- Jeg husker en diskussion, hvor Peter skriver noget på tavlen, hvorefter Jørn siger: »Men Peter…« og øjeblikkelig får tilbage: »Ja, naturligvis Jørn.« Jeg sværger på, at der ikke blev sagt andet. Det gjorde indtryk, når man ikke engang anede, hvad diskussionen i det hele taget drejede sig om, skriver Per Brinch Hansen i hyldestbogen til Niels Ivar Bech, der udkom efter hans død i 1975. Meget hurtigt bliver Naur og hans folk på Regnecentralen engageret i det internationale arbejde med at udvikle et programmeringssprog som modvægt til IBM's Fortran. En europæisk-amerikansk komite, som sad i Zürich, havde skrevet en indledende rapport om ALGOL 58. Et videnskabeligt programmeringssprog, som navnet antyder: ALGOrithmic Language. Algol kom i sin første version i 1958. Samme år som DASK blev indviet den 13. februar. Hensigten var at skabe et sprog, der kunne programmere en datamaskine uden at skrive maskinkode. I stedet skulle Algol 58 beskrive processen med numre, variable og funktioner. Det næste møde i ALGOL-komiteen skulle finde sted i København i slutningen af februar 1959 med Regnecentralen som vært - en lille måned efter Peter Naur var blevet ansat.

Peter Naur bliver redaktør for at undgå mere snak
- Vi tilbragte den måned med at granske, hvad der stod i det vanskelige dokument. På mødet prøvede vi at få svar på de utallige spørgsmål, som vi havde til forfatterne. Men det viste sig, at det kunne de ikke svare på, fortæller Peter Naur til de forsamlede dataarkæologers store fornøjelse.

Igen griber Naur pennen og vælger at skrive sig ud af tvivl og usikkerhed. Det hjælper ikke at tale sig til rette på store møder.

- Det var ret frustrerende og under mødet opdager jeg, at den eneste måde at komme videre på er en skriftlig udveksling af spørgsmål og svar. Så tre uger efter mødet udsender jeg efter aftale med deltagerne en diskussionsjournal. Algol Bulletin nummer 1. Det var tanken, at her skulle spørgsmål rejses og besvares, fortæller Peter Naur, der med Regnecentralen i ryggen de følgende måneder og år bliver ankermand for det internationale tidsskrift for Algol - og i november 1959 bliver han på et stort møde i Paris med 49 deltagere fra ni lande også medlem af den europæiske syvmandskomite. Der var en tilsvarende syvmandskomite i USA.

- Vi holdt også et møde i Mainz, hvor jeg kom ind på problemerne med at beskrive sproget. Jeg var meget utilfreds med, hvordan det var foregået i de tidligere versioner, men i mellemtiden var John Backus kommet med en god ide til, hvordan man kunne beskrive visse af tingene med den kendte Backus notation, og det prøvede jeg at komme igennem med. Desværre ikke særlig overbevisende - det blev nærmest en lille fodnote et sted, fortæller Peter Naur, der igen satte sig med pen og papir for at kæmpe for sine ideer.

Syntaksen er kendt som Backus-Naur Formen
- Når man skal overbevise folk, så skal man ikke snakke - så skal man gøre det. Så jeg tilbragte juledagene med at lave en beskrivelse af det nye sprog. Jeg skrev en skitse, hvor jeg brugte Backus notation.

I løbet af fire dage på det næste møde i januar 1960 bliver Naurs skitse grundlaget for det fortsatte arbejde, og han bliver bedt om at skrive en rapport. Den udkommer 14 dage senere og bliver den legendariske Algol 60 rapport, der i de kommende årtier bliver grundlaget for en lang række andre programmeringssprog. Blandt andet introducerer Algol 60 moderne begreber som blokstruktur i programmer, passage af parametre med værdi eller navn, dynamiske stakke og tabeller, brugerdefinerede data typer og brug af nøgleord. Samtidig bliver den formelle syntaks kendt som Backus-Naur-Form (BNF). Algol 60 rapporten er senere blevet betegnet som en Citation Classic, som er betegnelsen for de videnskabelige rapporter, der oftest bliver citeret i andre videnskabelige arbejder. Senere kommer rekursive procedurer også til. Der er en del kritik af procedurebegrebet, der begrænser Algol-sproget. Det løser Jørn Jensen ved at udvikle den behændige brug af procedureparametre kaldet called by name, der siden har været kendt som Jensens device. Alligevel har det internationale arbejde forsinket det egentlige arbejde med at udvikle en fungerende oversætter til DASK. Niels Ivar Bech giver compilergruppen rådighed over et fast, syet læselager til Algol-oversætteren - en fordobling af arbejdslageret fra 1024 til 2048 40 bits-ord og i løbet af efteråret 1960 er de faste procedurer klar til at blive syet ind i det faste lager, der bestod af ferritkerner, der var syet sammen med kobbertråde.

DASK-Algol blev aldrig godt
På samme tid indtrådte, der en begivenhed, som Peter Naur ikke tøver med at kalde "en katastrofe" for udviklingen af en Algol-oversætter til DASK:
Der blev udskrevet folketingsvalg, og DASK var som den første og eneste computer i Danmark udset til at foretage stemmeoptælling og prognoser for åbent tæppe i radio og tv. Den opgave trak Jørn Jensen ud af compilergruppen og, og værre blev det, da Jørn Jensen bagefter tog til USA for at arbejde der i et halvt år. Da Algol-compileren til DASK var færdig i slutningen af 1961, var tiden løbet fra den. Regnecentralen var begyndt på næste generation - den serieproducerede Gier-computer.

- Ærlig talt, så var Algol-løsningen til DASK ikke nogen god løsning. Men det var en god og lærerig prøvesten på, hvordan man ikke skulle gøre det. Så vi havde gode erfaringer, da vi kom i gang med compileren til Gier, forklarer Peter Naur, der selv var på et halvt års studieophold i USA, så udviklingen af Giers Algol-compiler kom først for alvor i gang i begyndelsen af 1962. Den skulle stå færdig til semesterstart på universitetet den første september.

- Det var ligegyldigt, om den var dårlig eller langsom, blot den kunne kaldes ved navnet Algol. Ved den besked udvekslede Jørn og jeg et blik: Bech skulle få noget andet at se, skriver Peter Naur i den førnævnte hyldestbog til Niels Ivar Bech.

Første professor i datalogi
Giers Algol-oversætter blev færdig til tiden og medtager næsten hele sproget.
- Under programudførelsen benytter den automatisk administration af programlagringen, baseret på hvad vi nu til dags kaldet sideinddeling (paging), tilføjer Peter Naur i sit kapitel i bogen: Niels Ivar Bech - en epoke i edb-udviklingen i Danmark.

Op gennem 60'erne hjalp Regnecentralens compilergruppe med at udvikle Algol-oversættere til Control Data Corporations (CDC) 3000- og 6000 serie af maskiner, ligesom gruppen fik kontrakt på at udvikle en COBOL-oversætter til Siemens. Comon Business Oriented Language (COBOL) var i modsætning til Algol beregnet til administrativ databehandling. I 1969 var gruppen klar med en Algol-compiler til Regnecentralens tredjegenerationsmaskine, RC4000, og med ti år i centret af den danske udvikling af programmeringssprog, var Peter Naur selvskreven til at bidrage til de nye uddannelser i datalogi på universiteterne i København og Århus. Med hans forkærlighed for den skriftlige dokumentation, begyndte han allerede i 1965 med at skrive lærebøger i datalogi. I 1969 blev Peter Naur professor i datalogi på Københavns Universitet.

Læs om Peter Naur og hans projekter på www.naur.com, og læs meget mere om DASK på www.datamuseum.dk

Faktaboks
Peter Naur er arkitekten bag oversætteren til Danmarks første computer, DASK, men er i særdeleshed kendt for arkitekturen i Algol-compileren, der har dannet forbillede for en lang række andre programmeringssprog. Algol 60 var den første oversætter, der realiserede Naurs ideer om automatisk tildeling af lageradresser (senere kendt som paging) og den formelle notation af syntaks kendt som Backus-Naur Form (BNF) udviklet i samarbejde med J. W. Backus.

Peter Naur
1949 mag. scient. i astronomi.
1953-59 Videnskabelig assistent, Københavns Universitets astronomiske observatorium.
1957 dr. phil.
1959-69 Regnecentralen, hvor han stod i spidsen for Compilergruppen, der udviklede Algol-compileren.
1961-68 Lektor på Danmarks Tekniske Højskole.
1969-98 Professor i datalogi på Københavns Universitet.
Har holdt utallige forelæsninger på universiteter i USA, England, Sverige og Italien.