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.[1]

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♥

Megjegyzés: Azonos néven létezik egy fejlesztés alatt álló compileres programozási nyelv is.[2]

ArnoldC[szerkesztés]

Az ArnoldC alapvetően egy imperatív programozási nyelv, amelynek kulcsszavai Arnold Schwarzenegger filmjeiben elhangzott mondatokat idéznek.[3][4] A fordító java byte kódot generál.

A programozási nyelvet Apache License 2.0 alatt publikálták.[5]

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

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

A legegyszerűbb ArnoldC program nem csinál semmit[szerkesztés]

IT'S SHOWTIME
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.

„Helló, világ!” program brainfuck nyelven:

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

Malbolge[szerkesztés]

A Malbolge programozási nyelvet Ben Olmstead alkotta meg 1998-ban. Szándéka az volt, hogy az addigi két egyeduralkodó „érthetetlen” nyelvet (INTERCAL, Brainfuck) letaszítsa trónjáról, ugyanis azokat túl könnyen tanulhatónak találta. A Malbolge-ot úgy tervezték, hogy kivételesen bonyolult és érthetetlen legyen.

Az „Helló, világ!” program kódja:[6]

(=<`$9]7<5YXz7wT.3,+O/o'K%$H"'~D|#z@b=`{^Lx8%$Xmrkpohm-kNi;
gsedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543s+O<oLm

Piet[szerkesztés]

"Hello World" egy lehetséges megvalósítása 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.

Velato[szerkesztés]

A programnyelven írt kódok, akárcsak a Piet esetében, műalkotások. Jelen esetben kották, amik egyben lejátszhatók (általában harmonikus) zeneként is.

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]

Jegyzetek[szerkesztés]

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