ALGOL

ALGOL (fokorting for ALGOrithmic Language) er eit programmeringsspråk som starta utviklinga midt på 1950-talet, og er eit tidleg programmeringsspråk. Den første standarden vart ferdig i 1958. Seinare versjonar 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 dei programmeringsspråka som blir brukt i dag kjem frå Algol, og blir derfor rekna som viktigare enn Fortran og COBOL, som var dei mest populære språka på den tida.

Eigenskapar og historie 
Algol vart utvikla av ein internasjonal komité frå slutten av 1950-åra og framover.
Den første rapporten som spesifiserte Algol58 vart ferdig i 1958. Særleg versjonen
frå 1960 var nyskapande. Algol60 introduserte blokkstuktur, som finst i nesten
alle programeringsspråk introduserte sidan, og som gjer lokale variablar
mogeleg. I tillegg vart parameteroverføringsmodi som call by value og 
call by name, slik at ein kan lage rekursive funksjonar. if-then-else og
generelle mekanismar for iterasjon var og nytt i Algol60.

Ei anna nyvinning er at syntaksen til algol er formelt definert i form
av ein gramatikk. Denne var i såkalla Bachus-Neur-form (BNF), og dette er
i dag den vanlegaste måten å spesifisere eit programmeringsspråk. 

Andre eigenskapar som var nye i Algol:

 Dynamiske arrayar: Arrayar som ikkje måtte spesifiserast når programmet
vart laga, men kunne allokerast dynamisk under køyring.
 Nøkkelord: Nøkkelorda i språket kan ikkje brukast som variablar i Algol-program.
 Brukardefinerte datatypar: datatyper som speglar problemetområdet programmeraren forsøker skrive eit program for

Døme på programmering i Algol

Dette programmet reknar ut gjenomsnittet av alle elementa i ein 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	

Kjelder

Bakgrunnsstoff

Kategori:ANSI standardar