Algol (programmeertaal): verschil tussen versies

Naar navigatie springen Naar zoeken springen
2.387 bytes toegevoegd ,  10 jaar geleden
nadere uitwerking - in de bestaande tekst werden de talen te veel op een hoop gegooid
(nadere uitwerking - in de bestaande tekst werden de talen te veel op een hoop gegooid)
'''Algol''' is een zeer invloedrijke [[programmeertaal]], bedacht voor wetenschappelijke doeleinden in [[1958]]. De naam is een afkorting voor ''Algorithmic Language''.
 
Algol is voortgekomen uit de wens om een universeel bruikbare, [[platformonafhankelijk|machine-onafhankelijk]]e programmeertaal te maken die voor mensen eenvoudig begrijpelijk moest zijn en daarom aansloot bij de gebruikelijke wiskundige notatie en manieren van uitdrukken in [[natuurlijke taal|natuurlijke talen]] zoals het Engels of Nederlands.
==Geschiedenis==
De taal was voortgekomen uit de wens om een machine-onafhankelijke programmeertaal te maken die zoveel mogelijk moest lijken op gebruikelijke wiskundige notatie. De taal was daarmee een reactie op de weinige andere destijds al bestaande programmeertalen, [[Cobol]] en [[Fortran]].
 
Dit streven is mislukt: de universele programmeertaal is er niet gekomen. Maar de meeste sindsdien en ook nu nog ontwikkelde programmeertalen gebruiken allerlei ideeën die in een van de versies van Algol zijn geïntroduceerd.
De taal richtte zich op de gebruiker, en was gespecificeerd met een gedefinieerde [[grammatica]], zodat het mogelijk werd om op een formele manier over programmacorrectheid te spreken. De [[implementatie]] van al dit moois was voor de bedenkers van later zorg. Algol was ook de eerste taal die alle [[programmeerparadigma|programmeerparadigma's]] zou combineren. Alle moderne programmeertalen ontlenen wel ideeën aan Algol.
 
==Geschiedenis==
Ironisch genoeg was de taaldefinitie zo ontzettend uitgebreid, dat nooit iemand het voor elkaar heeft gekregen een compiler voor de complete taal te maken. Toch waren de gedeeltelijke implementaties, die gebruikmaken van een interpreter, in de jaren tachtig populair en wordt de taal nog steeds wel gebruikt voor pseudocode.
Er zijn verschillende programmeertalen met de naam Algol, waaronder
 
Er zijn drie versies van de taaldefinitie van Algol, genoemd naar het jaartal waarin ze ontworpen zijn:
* [[Algol-58]]
* [[Algol-60]]
+ [[Algol-W]]
* [[Algol-68]]
 
Algol-58 (aanvankelijk IAL genoemd) werd ontwikkeld in dezelfde tijd, en met dezelfde doelen, als [[Cobol]] en [[Fortran]], en lijkt wel op de laatste. Het is eigenlijk nooit een helemaal afgewerkt produkt geworden, maar heeft wel gediend als inspiratiebron voor tal van andere talen.
Algol-58 was meer een verzameling van goede ideeën, maar was nooit bedoeld als volledig afgemaakt product. Toch zou deze taal de basis worden voor veel andere talen.
 
Algol-60 werd ontwikkeld als opvolger van onder andere Fortran, mede door een van de ontwerpers van Fortran, [[John Backus]]; deelnemende Nederlanders waren [[Edsger Dijkstra|Edsger W. Dijkstra]] en [[Adriaan van Wijngaarden|Aad van Wijngaarden]]. Het gebruik is echter door gebrek aan steun van computerfabrikanten vooral tot de academische wereld beperkt gebleven. Een zeer invloedrijke vernieuwing in deze taal was de ondersteuning van willekeurig innestelbare blokstructuren (beschreven met een [[grammatica]] middels de [[Backus-Naur-formalisme|Backus-Naur-notatie]]) waarin variabelen een lokaal [[variabelenbereik|bereik]] kunnen hebben.
Algol-60 was het resultaat van werk van [[John Backus]], [[Peter Naur]] en [[Edsger Dijkstra|Edsger W. Dijkstra]]. De Amerikaanse beroepsvereniging [[ACM]] besloot dat deze taal de standaardtaal zou worden voor het weergeven van algoritmes ([[pseudocode]]) in haar blad ''Communications of the ACM''.{{citation}}
 
Algol-W werd ontwikkeld door [[Tony Hoare]] en [[Niklaus Wirth]] als vereenvoudiging van Algol-60. Wirth ontwikkelde een compiler voor de [[IBM 360]] die de taaal populair maakte.
 
Algol-68 was bedoeld als opvolger van Algol-60, met als ontwerpdoel een universele programmeertaal te maken, waarin op willekeurige computers voor willekeurige doeleinden gemakkelijk zou kunnen worden geprogrammeerd, door allerlei voorzieningen en programmeertechnieken in zich te verenigen op een zo algemeen mogelijke manier.
 
Het eindrapport bevatte een ingewikkelde [[formele specificatie]] in een speciaal voor dit doel ontwikkeld wiskundig formalisme, de [[Van Wijngaardengrammatica]]. Deze legt de vorm en betekenis van de taal vast op een machine- en compileronafhankelijke manier, en staat het in principe toe om formeel te redeneren over de correctheid van programma's en van [[compiler]]s voor de taal.
 
Verscheidene leden van het ontwerpteam, waaronder Dijkstra, Hoare en Wirth, vonden echter de taal en zijn specificatie zo groot en complex worden dat het maken van [[compiler]]s ervoor ondoenlijk werd en ook de praktische bruikbaarheid door programmeurs eronder leed.
 
Ondanks een herziene specificatie (1971) die veel begrijpelijker was en sommige moeilijkheden veroorzakende constructies schrapte, was het algemene oordeel al gegeven: een universele programmeertaal is misschien een te hoog doel, en het ontwerpen ervan op papier door een commissie zonder praktische implementaties misschien niet de beste methode. Sindsdien is vrijwel algemeen geaccepteerd dat programmeertalen altijd beperkt zijn: tot bepaalde typen computers, bepaalde soorten toepassingen, of bepaalde [[programmeerparadigma]]'s. De belangrijkste uitzondering hierop is [[Ada (programmeertaal)|Ada]].
Algol-60 was het resultaat van werk van [[John Backus]], [[Peter Naur]] en [[Edsger Dijkstra|Edsger W. Dijkstra]]. De Amerikaanse beroepsvereniging [[ACM]] besloot dat deze taal de standaardtaal zou worden voor het weergeven van algoritmes in haar blad ''Communications of the ACM''.
 
Een compiler of interpreter die Algol-68 volledig implementeert bestaat niet, maar er zijn er wel die subsets implementeren die veel rijker zijn dan bijvoorbeeld [[Pascal (programmeertaal)|Pascal]]. Deze waren in de jaren 70 en 80 in de academische wereld populair. Tegenwoordig wordt de taal nog wel eens gebruikt voor pseudocode. Ook worden er nog steeds taalconstructies uit Algol-68 in nieuwe of bestaande talen als nieuw geïntroduceerd, zoals de combinatie van [[statische typering]] met [[hogere-orde functie]]s en [[lambda-expressie]]s.
De namen van Backus en Naur zijn tot heden verbonden aan de wijze waarop de syntaxis gedefinieerd wordt. Zie [[Backus-Naur-formalisme]].
 
==Externe links==
1.653

bewerkingen

Navigatiemenu