I dag skal vi fordype oss i den fascinerende verdenen til ALGOL 58. Dette emnet har vært gjenstand for studier, debatt og refleksjon gjennom historien, og har påvirket ulike aspekter av samfunnet. Siden fremveksten har ALGOL 58 utløst en rekke betydelige transformasjoner i _var2-riket, og skapt både beundring og kontrovers. Gjennom denne artikkelen vil vi utforske i dybden de forskjellige aspektene knyttet til ALGOL 58, fra dets opprinnelse til dets nåværende virkning, med sikte på å gi en omfattende og berikende visjon av dette emnet som er så relevant i dag.
ALGOL 58 | |||
---|---|---|---|
Paradigme | Multi-paradigme: Prosedyrisk programmering, imperativ programmering, strukturert programmering | ||
Designet og utviklet av | Friedrich Ludwig Bauer, Heinz Rutishauser, Klaus Samelson, John Backus, Charles Katz, Alan Perlis | ||
Typetildeling | statisk, sterk | ||
Påvirket av | |||
Fortran, Plankalkül |
ALGOL 58, opprinnelig var betegnelsen IAL foreslått, er et programmeringsspråk i familien ALGOL. Det ble utviklet etter et initiativ i oktober 1955 og ble presentert 1958.[1] Språket introduserte begrepet sammensatte utsagn, men begrenset dette til flytkontroll.
Et sammensatt utsagn er en gruppe av utsagn som syntaktisk blir behandlet som ett eneste utsagn, dette gjør programmteksten oversiktligere. I Algol 58 og mange senere programmeringsspråk ble dette gjort ved å samle utsagnene i parentesparet begin og end, forskjellige andre språk som for eksempel C bruker { og }.
begin 1. utsagn 2. utsagn ... end |
Etterfølgeren Algol 60 utvidet dette konseptet ved å knytte identifikatorenes gyldighetsområder til blokker (blocks).
En spesiell versjon av Algol 58, JOVIAL, ble lansert 1960 og var spesielt utviklet for innebygde systemer. JOVIAL var i bruk til 2008 eller lenger.[2]
Dette programmet regner ut gjennomsnittet av alle elementene i en array, det er skrevet i referanse-Algol. I en konkret implementasjon ville det ha et avvikende utseende. Se det samme eksempelet under Algol 60 til sammenlikning.
comment the main program (this is a comment); begin Main: array (Data) Read Int(N); for i:=1 (1) N begin Read Real(val); if (val<0) Data:= -val if (val≥0) Data:= val end for i:=1 (1) N sum:=sum + Data avg:=sum/N; Print Real(avg) integer (N, i) end Main