ALGOL

A Wikipédiából, a szabad enciklopédiából
ALGOL
Paradigma procedúrális, imperatív, struktúrált
Megjelent 1958
Tervező Bauer, Bottenbruch, Rutishauser, Samelson, Backus, Katz, Perlis, Wegstein, Naur, Vauquois, van Wijngaarden, Woodger, Green, McCarthy
Utolsó kiadás Algol 68
Befolyásolt nyelvek A legtöbb után a következő imperatív nyelvek (ún. ALGOL-szerű nyelvek)
pl. Simula, C, CPL, Pascal, Ada


Az ALGOL (angolul: ALGOrithmic Language, magyarul kb. algoritmikus nyelv) 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ó.

É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 azokat
  • 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ás[szerkesztés | forrásszöveg szerkesztése]

  • 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