Algol 68: verschil tussen versies
Verwijderde inhoud Toegevoegde inhoud
Geen bewerkingssamenvatting |
|||
Regel 1:
'''Algol-68''' is een procedurele [[programmeertaal]], ontworpen in 1968 als beoogd opvolger van [[Algol 60]], door een werkgroep onder leiding van [[Aad van Wijngaarden]]. Het doel was om met een algemeen bruikbare programmeertaal te komen die tegelijk veelzijdig en netjes opgezet en gespecificeerd moest zijn. De taal is omvangrijk, met allerlei innovatieve voorzieningen, maar tegelijk erg [[orthogonaal]]. De zeer gedetailleerde specificatie is sinds de herziening in
De ingewikkeldheid en ambities van taal en specificatie zorgden al tijdens de ontwikkeling voor weerstand, ook binnen de werkgroep: [[Niklaus Wirth]] stapte er uit en kwam met het eenvoudigere [[programmeertaal Pascal|Pascal]]. Ook de meeste Algol 68-compilers ondersteunen niet alle taalvoorzieningen, maar ze ondersteunen wel een taal die rijker en ingewikkelder is dan Pascal.
Regel 14:
<code>
i := j +:= 5; # tel 5 op bij j
(i := j) +:= 5 # wijs de waarde van j toe aan i
</code>
Een tweede voorbeeld is dat in Algol 68 de komma-operator een algemene verbinder van statements is
Ik kan dus een typische [[for-lus]] (vgl. bv. <ref>[http://www.eskimo.com/~scs/cclass/int/sx4db.html de for-loop in C]</ref>) opschrijven <code>
FOR int i = 1, int j = 1, int total = 0
Regel 36 ⟶ 37:
OD
</code>
alleen is de resulterende waarde van <code>total</code> in het tweede geval onvoorspelbaar, omdat de statements die de komma verbindt in willekeurige volgorde, en zelfs tegelijk, mogen worden uitgevoerd.
In dit opzicht doet de taal wel wat denken aan [[Perl]].
Regel 46 ⟶ 47:
Tegelijk is er echter een ingewikkelde coercie (automatische typeconversie) afhankelijk van de context waarin een expressie voorkomt. Zelfs het nemen van de waarde van een variabele (zoals in <code>i := j</code>) is in Algol 68 een coercie.
Willekeurig complexe typen kunnen geconstrueerd worden met behulp van onder andere de constructoren <code>PROC</code> (om subroutines te maken met argumenten en resultaat van een gegeven type) en <code>REF</code> (om het type aan te duiden waar waarden van het gegeven
Het <code>REF</code>-mechanisme bleek
==Externe links==
Veel details over Algol 68, de motivatie erachter, invloeden van en op andere programmeertalen, persoonlijke anekdotes, en de broodnodige humor zijn te vinden in
*[http://portal.acm.org/citation.cfm?id=155365 ''A history of ALGOL 68'', door C.H. Lindsey in: ''The second ACM SIGPLAN Conference on the History of Programming Languages, Cambridge MA (1993), pp. 97-132]
Andere verwijzingen:
*http://www.algol68.org
|