Ugrás a tartalomhoz

esoteric programming language

A Wikiszótárból, a nyitott szótárból


Főnév

esoteric programming language (tsz. esoteric programming languages)

  1. (informatika) ezoterikus programozási nyelv

Az esoteric programming language (vagy röviden esolang) egy olyan típusú programozási nyelv, amelyet nem a hagyományos szoftverfejlesztésre terveztek, hanem inkább kísérleti, humoros, művészi vagy kihívásokat jelentő célokból. Ezek a nyelvek gyakran szándékosan nehezen olvashatók, szokatlan szintaxissal rendelkeznek, vagy extrém korlátozásokat vezetnek be, hogy kipróbálják a programozási nyelvészet határait.



📜 Történelem és célok

Az első esolangok a 20. század végén jelentek meg, amikor a programozók kezdtek el játszani a nyelvek kifejezőképességével. Az esolangokat gyakran viccnek, társadalmi kommentárnak, művészeti projektnek, vagy technikai kihívásnak szánják.

Ezek a nyelvek lehetnek:

  • Minimalisták – csak néhány utasítást tartalmaznak (pl. Brainfuck)
  • Káoszosak – szándékosan zavarosak (pl. INTERCAL)
  • Turing-teljesek – még a legfurcsább nyelvek is képesek lehetnek bármely számítható probléma megoldására
  • Nem Turing-teljesek – szándékosan limitáltak
  • Önmaguk paródiái – reflektálnak a mainstream nyelvek bonyolultságára vagy egyszerűségére



💡 Híresebb esolangok

1. Brainfuck

Talán a legismertebb esolang. Csak 8 karakterből áll:

+ - < > [ ] . ,

A nyelv egy memóriacellákból álló tömbön operál, amelyet a pointerrel (>) lehet bejárni. Íme egy egyszerű “Hello World!” program Brainfuckban:

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

2. INTERCAL

INTERCAL (Compiler Language With No Pronounceable Acronym) egy szatirikus nyelv az 1970-es évekből, amely az akkori nyelvek (pl. Fortran, COBOL) túlkomplikáltságát figurázta ki.

INTERCAL sajátosságai:

  • “Please” kulcsszó használata: ha nem elég udvarias egy program, nem fordul le.
  • Szándékosan zavaros szintaxis.

3. Whitespace

Whitespace csak a szóköz, tabulátor és soremelés karaktereket használja, minden más ignorálva van. Így a programokat vizuálisan “láthatatlanná” teszi.

4. LOLCODE

A LOLCODE nyelv a “LOLspeak”-et (internetes macskanyelvet) utánozza. Példa:

HAI 1.2
CAN HAS STDIO?
VISIBLE "HAI WORLD!"
KTHXBYE

5. Befunge

A Befunge egy kétdimenziós nyelv: a programkódot a vezérlés nem soronként, hanem kétdimenziós térben járja be. Az utasítások mozgatják a vezérlést balra, jobbra, fel vagy le.



🔧 Közös jellemzők

  • Turing-teljesség: Sokan közülük képesek bármilyen számítás elvégzésére, elméleti szinten.
  • Kihívásfaktor: Ezek a nyelvek gyakran logikai vagy gépi gondolkodásra kényszerítik a programozót.
  • Kevés gyakorlati alkalmazás: Általában nem használják őket éles fejlesztési környezetekben.
  • Művészeti kifejezés: Egyes projektek performatív vagy konceptuális művészetként használják az esolangokat.



🧠 Miért tanul valaki esolangot?

  • Szellemi kihívás: Megérteni, hogyan lehet ugyanazt kifejezni egy korlátozott vagy furcsa eszköztárral.
  • Humor és közösség: A Redditen, Discordon és más fórumokon sok programozó közösség játszik esolangokkal.
  • Turing-teljesség megértése: Jó szemléltetőeszközök, hogy megtanuljuk, mit jelent számításelméleti értelemben “programozhatónak” lenni.
  • Szokatlan problémamegoldás: Segít kilépni a szokásos gondolkodásmódból.



🧪 Példák egyes nyelvekből

Brainfuck: 2 szám összeadása

++       Cell 0 = 2
> +++    Cell 1 = 3
< [->+<] Move 2 from Cell 0 to Cell 1

Az eredmény: Cell 0 = 0, Cell 1 = 5

LOLCODE: Összeadás

HAI 1.2
I HAS A NUM1 ITZ 3
I HAS A NUM2 ITZ 4
I HAS A RESULT ITZ SUM OF NUM1 AN NUM2
VISIBLE RESULT
KTHXBYE

Kimenet: 7



🎨 Egyéb ismert esolangok

Név Jellemző
Piet A programkód egy kép. A színek közötti váltás határozza meg az utasításokat.
Malbolge Az egyik legnehezebben írható nyelv, még az első programot is géppel kellett generálni.
Ook! A Brainfuck módosított változata, amelyet orángutánoknak szántak (nyilván vicc).
Shakespeare A program úgy van megírva, mintha egy Shakespeare-dráma lenne.
Chef A kód kinézete egy recept (pl. sütirecept), de a működésében program.



🔚 Összegzés

Az esoteric programming language-ek nem a hatékonyság vagy könnyű használhatóság jegyében születnek, hanem azért, hogy provokáljanak, inspiráljanak, vagy szimplán szórakoztassanak. A programozás játékosságát és kreatív oldalát emelik ki. Bár nem használjuk őket ipari környezetben, az általuk nyújtott szellemi edzés és szórakoztatás páratlan a programozás világában.