ALGOL (programmeringssprå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
|
|||||