ALGOL
Az ALGOL (angolul: ALGOrithmic Language, magyarul kb. algoritmikus nyelv) egy imperatív programozási nyelv, melyet az 1950-es években fejlesztett ki egy európai és amerikai, számítástechnikával foglalkozó tudósokból álló bizottság, többek közt azzal a céllal, hogy kijavítsák a FORTRAN egyes hibáit. Eredetileg IAL-nak nevezték el (International Algorithmic Language), de ezt a rövidítést elvetették. Három fő változata van: az ALGOL 58, az ALGOL 60 és az ALGOL 68, ezek közül az ALGOL 60 a legismertebb. A cikk további részében főként erről lesz szó.
ALGOL | |
Paradigma | procedúrális, imperatív, strukturált |
Megjelent | 1958 |
Tervező | Bauer, Bottenbruch, Rutishauser, Samelson, Backus, Katz, Perlis, Wegstein, Naur, Vauquois, van Wijngaarden, Woodger, Green, McCarthy |
Utolsó kiadás | Algol 68 |
Hatással volt rá | Fortran |
Befolyásolt nyelvek | A legtöbb után a következő imperatív nyelvek (ún. ALGOL-szerű nyelvek) pl. Simula, C, CPL, Pascal, Ada |
Évtizedeken keresztül az ALGOL-t vagy ennek egy változatát használták algoritmusokkal foglalkozó cikkekben azok leírásához. Több újítása volt a nyelvnek az előtte lévő programnyelvekkel szemben, néhány példa:
- Három szintaxist határoztak meg
- Az utasításokat nem kellett külön sorba írni, hanem pontosvessző választotta el őket
- Blokk-struktúra, ami a későbbi nyelvekben szinte általánossá vált (C, Pascal). Azaz az összetartozó utasításokat begin és end szavak közé tettek
- Minden blokk új névteret határoz meg
- Egymásba ágyazott procedúrák
- Rekurzió (ami azelőtt imperatív nyelvekben nem volt)
- Név szerinti és érték szerinti paraméterátadás. Ezt a későbbi nyelvekben a cím és érték szerinti paraméterátadás közti különbség váltotta fel.
- Nyelvtanát a Backus–Naur forma szerint írták le.
Az ALGOL 60 jelentősége abból is látszik, hogy szinte minden utána kitalált programozási nyelvre hatással volt, így a C-re, Pascal-ra, Simula-ra stb. is.
Mivel az ALGOL 60 szabvány nem tartalmazott kiíró utasítást, a szokásos „Helló, világ!” programot a hagyományos értelemben nem lehet megírni. A GNU MARST kiegészítéseivel viszont így nézne ki egy ilyen program:
begin outstring(1, "Helló, világ!"); end
Megjegyzés: A példában egyébként nincsen szükség se a pontosvesszőre, se a begin, end párra, mivel egy utasítást nem szükséges csoportosítani. Ez szemben áll több későbbi programnyelvvel, itt csupán a Pascallal való hasonlatosság szemléltetésére néz ki így.
Források
szerkesztés- Revised Report on the Algorithmic Language Algol 60
- Ez a cikk az angol Wikipedia idevágó cikkéből is tartalmaz információt, további tudnivalókért fordulj a [1] laphoz