Ezoterični programski jeziki

Ezoterični programski jezik (včasih skrajšano esolang) je programski jezik, namenjen preizkušanju meja zasnove računalniškega programskega jezika, kot dokaz koncepta, kot umetniška programska oprema, kot vmesnik za vdiranje v drug jezik (zlasti funkcijsko programiranje ali proceduralne programske jezike) ali kot šala. Uporaba besede ezoterični jih razlikuje od jezikov, ki jih programerji uporabljajo za pisanje programske opreme. Ustvarjalci večine esolangov jih ne nameravajo uporabljati za glavno programiranje, čeprav so nekatere ezoterične lastnosti, kot je vizualnoprostorska sintaksa, navdihnile praktično uporabo v umetnosti. Takšni jeziki so pogosto priljubljeni med hekerji in ljubitelji.

Uporabnost je redko cilj oblikovalcev ezoteričnih programskih jezikov; pogosto njihova zasnova vodi k nasprotnemu cilju. Njihov običajni cilj je odstraniti ali zamenjati konvencionalne značilnosti jezika, hkrati pa ohraniti jezik, ki je Turingovsko popoln ali celo takšen, za katerega je računski razred neznan.

Zgodovina

Najstarejši in še vedno kanonični primer ezoteričnega programskega jezika je INTERCAL, ki sta ga leta 1972 zasnovala Don Woods in James M. Lyon, pri čemer sta dejala, da je bil njun namen ustvariti programski jezik, drugačen od vseh, ki sta jih poznala. Parodiral je elemente takrat uveljavljenih programskih jezikov, kot so Fortran, COBOL in Assembly.

Več let je bil INTERCAL predstavljen le s papirnatimi izvodi priročnika INTERCAL. Njegova oživitev leta 1990 kot implementacija v jeziku C pod Unixom je spodbudila val zanimanja za namerno oblikovanje ezoteričnih računalniških jezikov.

Leta 1993 je Wouter van Oortmerssen ustvaril FALSE, majhen skladenjsko orientiran programski jezik s sintakso, zasnovano tako, da je koda po naravi zakrita, zmedena in neberljiva. Njegov prevajalnik je velik le 1024 bajtov. To je navdihnilo Urbana Müllerja, da je ustvaril še manjši jezik, zdaj razvpiti Brainfuck, ki ga sestavlja le osem prepoznavnih znakov. Skupaj z jezikom Befunge Chrisa Presseyja (kot FALSE, vendar z dvodimenzionalnim kazalcem na navodila) je Brainfuck zdaj eden najbolje podprtih ezoteričnih programskih jezikov s kanoničnimi primeri minimalnih Turingovih tarč in po nepotrebnem zakritih jezikovnih značilnosti. Brainfuck je povezan z družino Turingovih strojev.

Viri

Esoteric programming language (2022) Wikipedia. Wikimedia Foundation. Dostopno na: https://en.wikipedia.org/wiki/Esoteric_programming_language (Pridobljeno: December 10, 2022).

LOLCODE-to-javascript compiler Babel macro: Swizec Teller (ni datuma) swizeccom RSS. Dostopno na: https://swizec.com/blog/lolcodetojavascript-compiler-babel-macro/ (Pridobljeno: December 15, 2022).