Az Algol68 programozási nyelv

Bevezetés



Bevezetés

Az Algol 68 az Algol 60 továbbfejlesztése. Az Algol 60-at BNF-ben definiálták, ekkor használták a BNF-et először. Az Algol 68 tervezői is egy újfajta nyelvtant alkalmaztak. A nyelvet környezetfüggetlen, kétszintű, ún. Wijngaarden-nyelvtan segítségével definiálták, ami nemcsak a szintaxis, de a szemantika egy részének megadására is alkalmas volt. Így például a deklarációk és automatikus típuskonverziók szabályait is a grammatika segítségével adták meg. Továbbá új terminológiát vezettek be a fogalmakra. Ezek használatát mellőzzük, egyetlen kivételt azért teszünk: a típus Algol 68-ul mode. E két újítás miatt a nyelvdefiníció jelentős erőfeszítéseket követelt az olvasótól és meglehetős népszerűtlenségnek örvendett a programozók körében. A használat közben felmerült kisebb hibák javítását is tartalmazó és a könnyebb érthetőség kedvéért teljesen átdolgozott második nyelvleírás 1975-ben jelent meg; a cikk már ezt tárgyalja.

Az Algol 68 kialakításnál figyelembe vett szempontok között a két legfontosabb:

A nyelv sohasem terjedt el széles körben egyrészt az említett leírások miatt, másrészt mivel a korabeli fordítótechnika mellett komplexitása miatti nehéz volt teljesen implementálni. Az Algol 68 mára kihalt, de nagy hatást gyakorolt későbbi nyelvek tervezőire (pl.: Bjarne Stroustrupra - C++), ami alapján joggal nevezhetjük az imperatív programozási nyelvek latinjának.

Programstruktúra

Az Algol 68 blokkstrukturált nyelv. A program begin end (vagy zárójelek) közé írt szimbólumok sorozata. Azonosítók belsejében a szóköz megengedett. Megjegyzéseket írhatunk '#', 'co' vagy 'comment' szimbólumok közé, a megszorítás csak az, hogy egy megjegyzés eleje és vége ugyanaz kell, hogy legyen. A blokkok tetszőleges mélységben egymásba ágyazhatók. A deklarációk helye kötetlen, bárhol előfordulhatnak blokkon belül. Az utasításokat pontosvesszővel választjuk el.
Az alapprogram:

begin string message to user := "Hello world!"; print((message to user, new line)) end