Ezoterikus programozási nyelv

A Wikipédiából, a szabad enciklopédiából

Az ezoterikus programozási nyelv olyan programnyelv, amelyet készítője nem mindennapi, gyakorlati programozási feladatok elvégzésére szán, hanem elkészítésével a programnyelvek tervezésével járó korlátokat feszegeti, művészeti célokat elégít ki, vagy akár viccel. Habár ezek a nyelvek általában nem alkalmasak gyakorlati szoftverfejlfesztési célokra, előfordulhatnak bennük olyan ötletek, amelyekből később az általános programnyelvek merítenek.

Az ilyen nyelveknek általában nem célja a használhatóság, gyakran épp az ellenkezője a cél, de mindemellett készítőik igyekeznek elérni, hogy a nyelv Turing-teljes legyen.

Történet[szerkesztés]

Az egyik első ezoterikus nyelv az INTERCAL volt, amelyet 1972-ben készített Don Woods és James M. Lyon. Kimondott céljuk volt a megszokott módszerekkel való szakítás, a nyelvben parodizálták az akkoriban elterjedt Fortran, COBOL és assembly nyelveket. A nyelv sokáig csak papíron létezett. 1990-ben elkészült C alapú implementációja nagy érdeklődést keltett az ezoterikus programozási nyelvek iránt.

1993-ban Wouter van Oortmerssen elkészítette a FALSE-t, egy kisméretű, verem alapú programozási nyelvet, amelynek szintaktikájára kimondottan jellemző volt az olvashatatlanság. Mindössze 1 kilobyte méretű fordítóval rendelkezett. Ez inspirálta Urban Müllert, hogy elkészítsen egy még kisebb méretű programnyelvet. Ez lett a széles körben ismert brainfuck, amely mindössze nyolc karaktert használ. A brainfuck, és a Chris Pressey által készített Befunge manapság a legnagyobb támogatottsággal rendelkező ezoterikus programozási nyelvek.

Fogalmak[szerkesztés]

Turing-csapda (Turing tarpit)[szerkesztés]

Az ilyen program eszköztára rendkívül szűkös. A Turing tarpit kifejezés először Alan Perlis 1982-ben megjelent cikkében, az "Epigrams on Programming"-ban jelent meg. A tarpit természetes bitumenlelőhelyet jelent angolul, amely egyben veszélyes csapda is. A kifejezés azt az állapotot kívánja megjeleníteni, amikor bár minden megvalósítható (tehát Turing-teljes), de semmi sem egyszerű.

Példák[szerkesztés]

Ante[szerkesztés]

Az Ante kizárólag számokat és a francia kártya jeleit használja. Az alábbi kód a klasszikus „Helló, világ!” program ("Hello, world!") implementációja.

9♦8♥J♦A♦2♣3♥7♠J♦A♦7♦J♦J♦A♦3♦J♦5♥6♦4♥J♥A♥6♠6♠J♥A♦8♦J♦A♦8♠J♦A♦3♦J♦A♦6♠J♦A♦8♠J♦A♥3♦2♠J♥A♥2♣6♠J♥

ArnoldC[szerkesztés]

Az ArnoldC utasításai Arnold Schwarzenegger filmjeiben elhangzott mondatokat idéznek.

A program fő moduljának definíciója[szerkesztés]

IT'S SHOWTIME
  [utasítások] 
YOU HAVE BEEN TERMINATED

Értékadás[szerkesztés]

GET TO THE CHOPPER [változó]
HERE IS MY INVITATION [operandus]
  [műveletek]
ENOUGH TALK

Brainfuck[szerkesztés]

A brainfuck programozási nyelv kimondott célja az, hogy a fordító (compiler) a lehető legkisebb legyen.

"Hello World" program brainfuck nyelven:

++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.

Piet[szerkesztés]

"Hello World" Pietben

A Piet olyan ezoterikus nyelv, amelynek programjai képeknek tűnnek. A képek kis területekre vannak osztva, és színük információt hordoz a fordítóprogram számára. Megalkotója David Morgan-Mar. A nyelv nevét Piet Mondrian holland festő után kapta.

Whitespace[szerkesztés]

A Whitespace programozási nyelv kizárólag a szavak és írásjelek elválasztására használható szóközt, a tabulátor és a soremelés (LF) karaktereket használja.

Források[szerkesztés]

További információk[szerkesztés]