Peter Naur og Algol 60

Fra DDHFwiki
Spring til navigation Spring til søgning

Under udarbejdelse ...

Indledning

Peter Naur blev involveret i arbejdet med at udvikle Algol 60 den 1. februar 1959, hvor han blev ansat på Regnecentralen. Hans arbejde med Algol 60 i den efterfølgende periode, frem til omkring 1. marts 1960, belyses her ved hjælp af visse af hans efterladte materialer og det kollokvium, som han holdt i Datalogisk Selskab den 10. marts 1972 om Hvorledes Algol 60 blev til.

History of Programming Languages (HOPL)

En vigtig kilde til udviklingen af Algol i dets flere varianter er HOPL konferencen fra 1978:

History of Programming Languages by Richard L. Wexelblat (Editor), Proceedings of the first ACM SIGPLAN History of Programming Languages Conference, Los Angeles, Calif., June 1-3, 1978.

Algol blev skabt i et transatlantisk samarbejde og i HOPL beskriver Alan J. Perlis The American Side of the Development of ALGOL, mens Peter Naur tager sig af The European Side of the Last Phase of the Development of ALGOL 60. Bemærk, at Algol 68 faldt udenfor de kriterier, bl.a. en vis alder, der blev fastsat for at blive medtaget ved HOPL.

Aad van Wijngaardens bidrag til ALGOL 60

En anden kilde til udviklingen af Algol 60 er Peter Naurs Wijngaarden-artikel:

Peter Naur: "Aad van Wijngaarden's Contributions to ALGOL 60", Algorithmic Languages, de Bakker/van Vliet (eds.), (C) IFIP, North-Holland Publishing Company, 1981, 293-304.

Her beskriver Naur nogle af de samme begivenheder som HOPL, fra en lidt andet synsvinkel.

Perlis: Perioder i udviklingen af Algol

Fra Perlis' præsentation ved HOPL, kommer denne opdeling i theological periods:

Pre-ALGOL 58

Perlis kalder dette FORTRAN stadiet.

Zürich

Konference i Zürich, 27. maj til 2. juni 1958, hvor 4 deltagere fra GAMM (Gesellschaft für angewandte Mathematik und Mechanik) og 4 deltagere fra ACM (Association for Computing Machinery) samarbejder deres forslag til et universelt programmeringssprog, som resulterer i:

ALGOL 58

Først kaldet IAL (International Algebraic Language), så ALGOL, blev beskrevet i:

John Backus m.fl. (edited by A. J. Perlis and K. Samelson). "Preliminary report - international algebraic language". Comm. ACM. 1 (12), 1958, 8–22. Også: John Backus m.fl. (edited by A. J. Perlis and K. Samelson). "Report on the algorithmic language ALGOL", Num. Math. 1(1959), pp. 41-60.

Kendt som Zürich rapporten.

Zürich to Paris

Det er i denne periode inden Paris konferencen i januar 1960, hvor Backus udgiver:

John Backus, "The syntax and semantics of the proposed international algebraic language of the Zürich ACM-GAMM conference," Proc. International Conf. on Information Processing, Paris, June 1959, pp. 125-132, UNESCO.

I denne afhandling introducerer Backus sin notation til beskrivelse af syntaks og bruger den til at beskrive syntaksen for Algol 58. Det er også denne periode, som her belyses ved hjælp af visse af Peter Naurs efterladte materialer og hans kollokvium.

ALGOL 60 and its testament

Det er jo så den konference i Paris, fra den 11. til 16. januar 1960, der har Algol 60 rapporten som udkomme:

John Backus, et al. (Peter Naur, ed.), "Report on the Algorithmic Language Algol 60", Num. Math. 2, 1960, 106-136. Also Comm. ACM 3(5), 1960, 299-314.

Post-Paris Blues

Perioden efter Algol 60 rapportens udgivelse, som efter Perlis' udlægning er præget af visse kontroverser og uenigheder.

ALGOL as Atmosphere

Og endelig den aktuelle situation, selvfølgelig set fra HOPL omkring 1978, men som vel på en måde stadig er gældende: Algol som sådan er ikke voldsomt udbredt, men mange egenskaber, som sås første gang i Algol, kan genkendes i en række, gængse programmeringssprog.

Peter Naur: Algol 60 documents

Indholdet af en tidskriftskassette, efterladt af Peter Naur, er i et vist omfang scannet og refereres i det efterfølgende.

Særtryk af Backus' afhandling

Dette er Peter Naurs særtryk af Backus' afhandling med notationen til at beskrive syntaks. Af særlig interesse her er Peter Naurs håndskrevne notater. Som han skriver i HOPL: Only in October 1959, during a second phase of studying Backus's Paris report, did I penetrate through his formal, syntactic description. Og vi ser, på siden med nummer 14, Naurs notater og justeringer og ikke mindst bemærkningen In the text explaining the semantics, any object which is denoted by a designation, A say, which has been defined syntactically as <A>, will be identical to <A>, som peger frem mod den tilsvarende formulering i Algol 60 rapporten.

Mike Woodgers brev om Algol 60 materiale

Mike Woodger fungerede som sekretær, bl.a. under januar 1960 konferencen i Paris, der endte med Algol 60 rapporten. I Mike Woodgers brev til Peter Naur dateret 1983-Sep-23 fortæller han, hvor hans materiale om bl.a. Algol 60 etc. er deponeret og eventuelt kan tilgås.

Billeder fra forberedende møde i Paris, november 1959

Fra et af de forberedende møder, Paris, november 1959, stammer tre billeder med tilhørende tegning til delvis identifikation af de afbildede.

Mike Woodgers besøg i Mainz og Zürich november 1958

Mike Woodger besøgte Mainz og Zürich i november 1958. Herfra stammer Rutishausers invitation, deltagerlisten fra mødet i Mainz og Mike Woodgers rapport på 5 sider (Naurs HOPL artikel reference Woodger, M., (1959a)) fra disse besøg, adresseret til:

Director(E)
Administration
Mathematics Division

Og udfra adressen på Rutishausers invitation, mere specifikt:

National Physical Laboratory
Mathematics Division
Teddington / Middlesex
ENGLAND

Kilder til Algol 58

Et af Naur påbegyndt skema over hvilken side af atlanten, der kan anses som kilde til de enkelte elementer i Zürich rapporten.

Udkast til Zürich rapporten

Et udateret dokument på 35 sider, der indeholder et udkast til Zürich rapporten.

Dokumenter udlånt fra Mike Woodger

I forbindelse med HOPL-konferencen, stillede Mike Woodger visse dokumenter til rådighed for Naur.

Pre-Zürich rapporter fra kommitéer under GAMM og ACM

I forindelse med forberedelserne til HOPL, modtog Naur i 1977 rapporter fra kommitéer under GAMM og ACM, der arbejdede med programmeringssprog. Det er utvivlsomt disse arbejder, der blev samarbejdet i Zürich rapporten og altså blev til Algol 58.

Fra Naurs forberedelsesarbejde stammer formentlig visse håndskrevne notater.

Der er to GAMM rapporter, der beskriver programmeringssprog:

  • Den tysksprogede udgave (Naurs HOPL artikel reference Baur, F. L., et. al. (1958a)), der er opdelt i tekst og diagrammer. Baseret på notater i rapporten (se f.eks. forsiden og de to sider med nummer - 7 -) ser det ud til, at Naur har sammenflettet flere kopier af denne rapport.
  • Den engelsksprogede udgave (Naurs HOPL artikel reference Baur, F. L., et. al. (1958b)), ifølge rapporten selv, hastigt oversat fra tysk. Den engelsksprogede udgave findes i to kopier med forskellige noter, men kopierne er vurderet tilstrækkelig ens til, at kun den ene er taget med her.

Indledningen i de to GAMM rapporter viser tydeligt den engelsksprogede som en oversat udgave af den tysksprogede, men rapporterne adskiller sig i øvrigt væsentligt i mange henseender.

Fra ACM underkommitéen stammer tilsvarende et forslag til et programmeringssprog (Naurs HOPL artikel reference Backus, J. W., et. al. (1958)). Dette forslag findes i to kopier, men de er vurderet nogenlunde ens, så kun den ene er medtaget her.

Zürich konference referater

Utvivlsomt i forbindelse med HOPL arbejdet, modtog Naur rapporter fra arbejdet ved Zürich konferencen (Naur HOPL artikel reference Zurich conference on "universal language" (1958) May 27-30). Der er dels daglige referater, der beskriver, hvad deltagerne blev enige om i en liste på i alt 37 punkter og et indskudt appendix:

Dels oversigtsdokumenter:

Algol konference i Paris 12.-14. november 1959

Fra denne konference med deltagelse af en bred forsamling af europæiske interesserede i Algol-indsatsen stammer:

Algol konference i Mainz 14.-16. december 1959

Ved konferencen i Paris november 1959 blev de syv europæiske deltagere i den endelige konference i januar 1960 udvalgt. Disse syv mødtes så i Mainz i december 1959 til forberedelser. Herfra:

Om denne konference skriver Naur i HOPL:

As a personal comment, I believe that at the end of the meeting in Mainz the European representatives felt strongly that the proposal concerning declarations, [...], and the structure of procedures, [...], was a significant achievement. It managed to combine a variety of proposals into a scheme of great simplicity. There was also a clear feeling that the proposal would appear radical to the American representatives and would need the support of considerable persuasion in order to be accepted.

En forsendelse til Donald Knuth

Den 12. februar 1970 sendte Peter Naur en række dokumenter relateret til udviklingen af Algol 60 til Donald Knuth. Der var dels en række ikke-udgivne dokumenter, hvor hvert dokument i den medsendte liste af dokumenter får et nummer og endvidere indeholder oplysninger og noter om det enkelte dokument. Dertil de første 9 Algol Bulletin'er.

Algol 60 konferencen i Paris, 11. til 16. januar 1960

Op til og under denne konference blev der produceret en række dokumenter. Mange af dokumenterne er med i forsendelsen til Knuth og også i referencelisten til Naurs HOPL artikel med de samme numre som i listen til Knuth. I det efterfølgende forkortes f.eks. "Naur HOPL reference (ALGOL 60 document 2)" til blot "(document 2)":

  • Peter Naurs udkast til Algol 60 rapporten (document 5). Om dette udkast, fra HOPL konferencen: JOHN BACKUS: ... One last thing I'd like to add is that Peter Naur's conduct of the ALGOL Bulletin and his incredible preparation for that Paris meeting in which ALGOL was all written down already in his notebook--he changed it a little bit in accordance with the wishes of the committee, but it was that stuff that really made ALGOL the language that it is, and it wouldn't have even come about, I don't think, had he not done that.
  • ACM repræsentanternes forslag (document 6). I listen til Donald Knuth skriver Naur om dette dokument: The date written on my copy is wrong, I believe. I think the document was sent by mail and received before Jan. 9th. I dokumentet ses Naurs håndskrevne notater, f.eks. på første side For 8 Against 2, hvad der utvivlsomt er resultatet af en afstemning under mødet. Bemærk også omtalen af recursive i flere sammenhænge, f.eks. på side 3 under item 4, side 5 under 7 function og side 10 under 22 Part E.