ALGOL (programmeringsspråk)

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

ALGOL (forkortelse for ALGOrithmic Language) er et programmeringsspråk som begynte startet utviklingen midt på 1950-tallet, og er et tidlig programmeringsspråk. Den første standarden ble ferdig i 1958. Senere versjoner kom i 1960 og 1968. I dag er Algol først og fremst av historisk interesse, men er viktig fordi svært mange konsept i dagens programmeringsspråk kommer fra Algol, og det blir derfor regnet som viktigere enn Fortran og COBOL, som var de mest populære språkene på den tid.

[rediger] Egenskaper og historie

Algol ble utviklet av en internasjonal komité fra slutten av 1950-åra og framover. Den første rapporten som spesifiserte Algol58 ble ferdig i 1958. Spesielt versjonen fra 1960 var nyskapende. Algol60 introduserte blokkstuktur, som finnes i nesten alle programeringsspråk som senere er introdusert, og som 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. if-then-else og generelle mekanismer for iterasjon var også nytt i Algol60.

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

Andre egenskaper som var nye i Algol:

  • Dynamiske matriser (arrays): Matriser som ikke måtte spesifiseres når programmet ble laget, men som kunne allokeres dynamisk under kjøring.
  • Nøkkelord: Nøkkelordene i språket kan ikke brukes som variabler i Algol-program.
  • Brukerdefinerte datatyper: Datatyper som speiler problemområdet som programmereren forsøker å skrive et program for.

[rediger] Eksempler på programmering i Algol

Dette programmet regner ut gjennomsnittet av alle elementene i en array:

 // 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    
Personlig
Navnerom

Varianter
Handlinger
Navigasjon
Prosjekt
Wikipedia
Andre
Eksternt
Lager
Utskrift
Verktøy
På andre språk