Algol 60

Fra Wikipedia, den frie encyklopedi
Gå til: navigasjon, søk

Algol 60 er et programmeringsspråk i familien ALGOL. Det ble utviklet i perioden 1958–1963 som etterfølger av ALGOL 58, den første versjonen ble presentert 1960, en revidert versjon 1963.[1] Navnet Algol er kort for Algorithmic Language, 60 betegner årstallet da den første versjonen ble offentliggjordt.

Historikk[rediger | rediger kilde]

1959 ble noen forslag til en forbedring av ALGOL 58 presentert i tidsskriftet Communications of the ACM. November samme år avholdt Gesellschaft für Angewandte Mathematik und Mechanik (GAMM) et møte i Paris, Association for Computing Machinery (ACM) et møte i Washington D.C. for å velge 7 delegerte fra Europa og 7 fra Amerika til Algol 60-konferansen.[1] Denne ble avholdt i Paris fra 11. til 16. januar 1960 med «Report on the Algorithmic Language ALGOL 60» som resultat. Redaktør var Peter Naur.[2] 2. og 3. april 1962 ble et møte avholdt i Rom for å løse opp detaljer der utkastet ikke var konsekvent. Den endelige versjonen ble derpå offentliggjordt som «Revised Report on the Algorithmic Language ALGOL 60», også med Peter Naur som redaktør.[2]

Struktur[rediger | rediger kilde]

Algol 60 var nyskapende. Det introduserte blokkstuktur, som finnes i nesten alle programeringsspråk som ble utviklet senere, denne gjør lokale variabler mulig. I tillegg kom parameteroverføringsmodi som call by value og call by name, slik at en kunne lage rekursive funksjoner. Algol 58s if-betingelse ble utvidet med alternativet else samtidig som betingete uttrykk ble innført. Alle variabler måtte deklareres med en identifikator før bruk. Dynamiske matriser (arrays) kunne allokeres dynamisk under kjøring og måtte ikke spesifiseres når programmet ble laget. Feilprøving ble nå også foretatt under utføring av programmet.

En nyvinning var også at syntaksen til Algol 60 ble formelt definert i form av en grammatikk. Denne var i såkalt Backus-Naur form (BNF), og dette er i dag den vanligste måten å spesifisere et programmeringsspråk.

Standardiserte I/O metoder var ikke definert, dette førte til at de forskjellige kompilatorene kunne bli så forskjellige at en portering av programmer kunne være vanskelig.

Implementeringer av Algol 60[rediger | rediger kilde]

Her er bare noen få eksempler vist.[3]

  • DASK ALGOL for Regnecentralen ble utviklet fra februar 1959 til august 1960, samtidig som Algol 60 ble definert.
  • GIER Algol var også utviklet ved Regnesentralen og var ferdig til bruk august 1962.
  • Case Institute of Technology i Cleveland hadde skrevet en Algol-kompiler for UNIVAC 1107 i 1964. Denne ble videre utviklet ved NTH sammen med Norsk Regnesentral under navnet NU ALGOL (Norwegian University ALGOL) og ble også tilpasset UNIVAC 1108. Kompileren ble solgt til Sperry Rand Norway 1970.
  • Algol W ble presentert 1966 av Niklaus Wirth og implementert ved Stanford University, denne versjonen ble grunnlaget for Pascal
  • September 1966 ble Simula presentert av Ole-Johan Dahl og Kristen Nygaard og ble videre utviklet til Simula 67. Det var blant annet planlagt å implementere Simula 67 på UNIVAC 1108 med NU ALGOL som grunnlag.
  • 1967 ble ALGOL (F) for IBM System/360 tatt i bruk.

Eksempler på programmering i Algol 60[rediger | rediger kilde]

Dette programmet regner ut gjennomsnittet av absoluttverdiene for alle elementene i et array, det er skrevet i referanse-Algol. I en konkret implementasjon ville det ha et avvikende utseende.

 comment the main program (this is a comment);
  
 begin
   integer N;
   Read Int(N);
   
   begin
     real array Data[1:N];
     real sum, avg;
     integer i;
     sum:=0;
     
     for i:=1 step 1 until N do
       begin real val;
         Read Real(val);
         Data[i]:=if val<0 then -val else val
       end;
     
     for i:=1 step 1 until N do
       sum:=sum + Data[i];
     avg:=sum/N;
     Print Real(avg)
   end
 end

Referanser[rediger | rediger kilde]

  1. ^ a b History of ALGOL - Timeline. Computer History Museum (21. mars 2013). Besøkt 21. mai 2013.
  2. ^ a b Evolving algorithmic language. Computer History Museum (23. september 2012). Besøkt 25. mai 2013.
  3. ^ Algol 60 implementations and dialects. Computer History Museum (21. mars 2013). Besøkt 21. mai 2013.

Eksterne lenker[rediger | rediger kilde]