Ezoterikus programozási nyelv
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 

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

Turing-csapda (Turing tarpit) 
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

Ante 
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♥

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

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

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

A program fő moduljának definíciója 
 IT'S SHOWTIME
   [utasítások] 
 YOU HAVE BEEN TERMINATED

A legegyszerűbb ArnoldC program nem csinál semmit 

 IT'S SHOWTIME
 YOU HAVE BEEN TERMINATED

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

Brainfuck 

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

Piet 

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 
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 

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 
 Alan Perlis: Turing Tarpit
 Ezoterikus programozási nyelvek
 10 furcsa programozási nyelv, amiktől tuti eldobod az agyad
 Programozás + Ezotéria = Brainfuck
 Computerworld interjú Don Woodsszal az INTERCAL-ról
 Piet
 ArnoldC
 Brainfuck programozási nyelv
 Visualisation of Live Code - Példa az ezoterikus programnyelvek általi inspirációra

Jegyzetek

További információk 
 Esolang wiki
 Online interpreter számos ezoterikus és nem ezoterikus programozási nyelvhez

Ezoterikus programozási nyelvek
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 Az egyik első ezoterikus nyelv az INTERCAL volt , amelyetben 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.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összekilobyte 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 Turing-csapda ( Turing tarpit ) Az ilyen program eszköztára rendkívül szűkös . A Turing tarpit kifejezés először Alan Perlisben 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 Ante 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 . 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 . ArnoldC Az ArnoldC alapvetően egy imperatív programozási nyelv , amelynek kulcsszavai Arnold Schwarzenegger filmjeiben elhangzott mondatokat idéznek . A fordító java byte kódot generál . A programozási nyelvet Apache License0 alatt publikálták . A program fő moduljának definíciója IT'S SHOWTIME [ utasítások ] YOU HAVE BEEN TERMINATED A legegyszerűbb ArnoldC program nem csinál semmit IT'S SHOWTIME YOU HAVE BEEN TERMINATED Értékadás GET TO THE CHOPPER [ változó ] HERE IS MY INVITATION [ operandus ] [ műveletek ] ENOUGH TALK Brainfuck 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 A Malbolge programozási nyelvet Ben Olmstead alkotta megban . 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 : ( =<`$9] 7<5YXz7wT.3,+O/o'K%$H" '~D|#z @ b=` { ^Lx8%$Xmrkpohm-kNi ; gsedcba`_^] \[ ZYXWVUTSRQPONMLKJIHGFEDCBA @ ? >=<;:9876543s+O<oLm Piet 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 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 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 Alan Perlis : Turing Tarpit Ezoterikus programozási nyelvek furcsa programozási nyelv , amiktől tuti eldobod az agyad Programozás + Ezotéria = Brainfuck Computerworld interjú Don Woodsszal az INTERCAL-ról Piet ArnoldC Brainfuck programozási nyelv Visualisation of Live Code - Példa az ezoterikus programnyelvek általi inspirációra Jegyzetek További információk Esolang wiki Online interpreter számos ezoterikus és nem ezoterikus programozási nyelvhez Ezoterikus programozási nyelvek