Arven fra ALGOL 60

I anledning af Peter Naurs nylige og alt for tidlige død vil jeg skrive et par ord om ALGOL 60 (ALGOritmic Language) og den rapport om sproget, som Peter Naur redigerede og som gav ham Turingprisen.

ALGOL 60 var en videreudvikling af IAL (også kaldet ALGOL 58), som var et forslag til et nyt programmeringssprog, der blev fremført ved en konference i Zürich i 1958. IAL (International Algebraic Language) var primært tænkt som et sprog til beskrivelse af algoritmer i datalogiske artikler og kun sekundært som et sprog til egentlig programmering. IAL introducerede nogle dengang nye begreber blandt andet blokstruktur, hvor virkefeltet af betingede sætning og løkker begrænses af nøgleordene BEGIN og END i stedet for linjeskift eller labels, og hvor blokke kunne indlejres uden begrænsninger.

Der blev afholdt et antal møder om IAL/ALGOL 58, blandt andet et møde i København i 1959, som affødte "The Algol Bulletin", et nyhedsbrev om sprogets design og udvikling, som Naur (der dengang arbejdede på Regnecentralen) redigerede. På basis af nyhedsbrevet forfattede Naur et udkast til en rapport om sproget, som han præsenterede som diskussionsoplæg til et møde i 1960. Dette udkast blev i det store og hele brugt som den officielle ALGOL 60 rapport, dog med et antal andre forfattere, f.eks. John W. Backus (som var en af hovedmændende bag FORTRAN), John McCarthy (hovedmanden bag LISP) og flere andre af datidens notabiliteter indenfor det datalogiske område. Det er blevet antydet, at Peter Naur fik disproportional meget indflydelse på sprogets endelige udformning ved at præsentere det første udkast til en sammenhængende beskrivelse for hele sproget, blandt andet har nogle sagt, at Naur fik "sneget" rekursion ind i sproget via en formulering om opførslen af funktionskald. Ikke desto mindre er ALGOL 60 rapporten i eftertiden blevet rost for sin præcise og systematiske beskrivelse af sproget, og sproget selv blev i 1973 af Tony Hoare beskrevet som "a language so far ahead of its time that it was not only an improvement on its predecessors but also on nearly all its successors".

Rapporten indeholdt et antal nyskabelser. Dels var sprogets syntaks formelt beskrevet i en notation, der nu kendes som Backus-Naur formen, en notation for kontekstfri grammatikker, der var inspireret af Noam Chomskys studier af formelle sprog. Varianter af denne notation har sidenhen været brugt til at beskrive næsten alle programmeringssprogs syntaks. Endvidere brugte ALGOL 60 til forskel fra FORTRAN, LISP og COBOL ikke den forholdsvis lille fælles delmængde af de de indbyrdes inkompatible maskintegnsæt, der blev brugt forskellige steder, men definerede sit eget tegnsæt, der indeholdt matematiske tegn såsom ≤, ≥, ¬, ⊃, ↑, ∨ og ∧. Rapporten tillod implementeringer af ALGOL 60 at erstatte disse tegn med sekvenser (uden dog at anbefale specifikke sekvenser), og den tillod også publikationer at præsentere ALGOL 60 kode med yderligere tegn såsom græske bogstaver, dog kun i variabelnavne.

Mens FORTRAN, LISP og COBOL overvejende var amerikanske opfindelser havde ALGOL 60 tydelig europæisk indflydelse, og var som resultat deraf mere populær i Europa end i USA. Ikke desto mindre har ALGOL 60 været en stærk indflydelse på næste alle moderne mainstream programmeringssprog, som f.eks. Python, Java og C#. Som konsekvens deraf kan programmer skrevet i ALGOL 60 i det store og hele forstås af moderne programmører uden yderligere forklaring. Som eksempel herpå er her et program, der er sakset fra ALGOL 60 rapporten:

Peter Naur har udover sit arbejde med ALGOL 60 også bidraget med forskning om den menneskelige side af programmering, og det er ham, der i 1966 fandt på ordet "datalogi" for faget, som på engelsk blev kaldt "computer science". Naur mente, at den engelske betegnelse fokuserede for meget på maskinen og for lidt på anvendelsen af maskinerne til databehandling.

Torben Mogensens billede
Torben er lektor i Datalogi på Københavns Universitet og studielder for bacheloruddannelsen i Datalogi. Hans faglige interesser ligger indenfor programmeringssprog, computerarkitektur, grafik, algoritmer m.m. Han blogger om alt inden for hans interesseområder, ofte med udgangspunkt i oplevelser på universitetet.

Kommentarer (7)

Uli Fahrenberg

Lige et opklarende spørgsmål: Du skriver "Det er blevet antydet, at Peter Naur fik disproportional meget indflydelse på sprogets endelige udformning ...": skal jeg forstå det sådan at du ikke er enig i den antydning og i den artikel du linker til?

Poul-Henning Kamp Blogger

En ting der altid har slået mig, var at selve det (typo)grafiske udtryk af ALGOL60 var utroligt velegnet til publicering, i modsætning til stort set alle andre sprog - før eller siden.

Kig i gamle CACM blade f.eks.

Intet tyder på det var en bevidst designbeslutning, det fulgte formodentlig bare af hvad dem der lavede sproget primært producerede.

En sjov fodnote i den sammenhæng er at ASCII fik '\' for at kunne skrive '\/' og '/\' i ALGOL programmer.

Christian Lynbech

Mht opfindelsen af ordet datalogi, så læste jeg for mange år siden en morsom artikel der kiggede lidt nærmere på ordet og sammenligenede det med andre discipliners navne og set med en lingvistikers øjne er der et antal fejl, såsom at blande latin (data-) og græsk (-logi). Der var også problemer med valg af bøjning, kunne man sluge blanding af latin og græsk, ville en mere konventionel løsning have givet "datologi" :-)

Det var på papir og jeg har ikke hurtigt kunne finde en reference via google; det var sikkert enten i Datalogforeningens blad eller Magisterbladet. Der er lidt etymologi feks. her: http://www.informationsordbogen.dk/concept_comment.php?cid=2291

Log ind eller opret en konto for at skrive kommentarer