Ezoterické programovací jazyky aneb z čeho by bouchla programátorovi hlava

Podle HackerRanku zná programátor v průměru čtyři programovací jazyky a další čtyři si plánuje osvojit. Drtivá většina těch, kteří mají ambice naučit se nový programovací jazyk, k tomu podle stejné zprávy preferuje samostudium. Naučit se programovat v novém jazyce je běh na dlouhou trať. Existují přístupnější jazyky, které si může rychleji osvojit i naprostý začátečník. Python, HTML nebo i Java mají oddanou komunitu vývojářů vytvářející obrovské množství materiálů, ze kterých je možné naučit se určitý jazyk ovládat. Na druhé straně spektra jsou jazyky, které by byly v praxi i pro ostřílené programátory noční můra. 

Představíme si nyní tzv. ezoterické programovací jazyky neboli esolangy. Ty naštěstí nejsou určené pro reálný vývoj, jde spíše o hříčky, parodie a svérázné formy sebevyjádření i manifesty politických postojů. V každém případě jde o obskurity, do kterých se vyplatí alespoň nakouknout – uvidíte, jak vám rázem zápis v kterémkoliv konvenčním jazyce přijde až triviální.

Hello World jinak

Pokud jste si mysleli, že naučit se C++ nebo Javu byl boj, následující pětice příkladů vás vyvede z omylu. Zkuste se podívat, jak vypadá Hello World v pěti esolangech. Jen pro porovnání – zápis Hello World v Pythonu vypadá takto:

print(“Hello, World!”)

INTERCAL

„Compiler Language With No Pronounceable Acronym“, to je INTERCAL, jazyk, který vytvořili v roce 1972 James M. Lyon a Don Woods jako parodii tehdejších programovacích jazyků. INTERCAL je praotec dalších esolangů a obsahuje například slovo „PLEASE“, které šlo umístit před jakýkoli příkaz a v původní verzi mělo vliv na „tón“, jímž interpreter oznamoval případné chybové hlášky. INTERCAL vzdáleně připomíná jazyk symbolických instrukcí. Jen tak pro dobový kontext: Ve stejné době jako INTERCAL vzniklo třeba céčko. 

Hello World v tomto jazyce vypadá takto:

DO ,1 <- #13

PLEASE DO ,1 SUB #1 <- #238

DO ,1 SUB #2 <- #108

DO ,1 SUB #3 <- #112

DO ,1 SUB #4 <- #0

DO ,1 SUB #5 <- #64

DO ,1 SUB #6 <- #194

DO ,1 SUB #7 <- #48

PLEASE DO ,1 SUB #8 <- #22

DO ,1 SUB #9 <- #248

DO ,1 SUB #10 <- #168

DO ,1 SUB #11 <- #24

DO ,1 SUB #12 <- #16

DO ,1 SUB #13 <- #162

PLEASE READ OUT ,1

PLEASE GIVE UP

Malbolge

Jazyk Malbolge vytvořil v roce 1998 Ben Olmstead a jde o ukázkový „nenaučitelný“ jazyk. Jeho název vychází z pojmenování osmého kruhu pekla z Dantova Inferna (Malebolge). Po jeho vytvoření trvalo téměř dva další roky, než v něm byl napsán nějaký program. A není se čemu divit.

Hello World napsaný v Malbolge vypadá následovně:

(=<`#9]~6ZY32Vx/4Rs+0No-&Jk)”Fh}|Bcy?`=*z]Kw%oG4UUS0/@-ejc(:’8dc

Brainfuck

V roce 1993 vznikl Brainfuck, za kterým stojí Urban Müller. Název dává najevo, co se stane s mozkem toho, kdo se ho pokusí naučit. Jazyk se skládá z osmi jednoduchých příkazů, které jsou vyjádřeny pomocí nealfanumerických znaků, a jednoho instrukčního ukazatele. Program je pak sekvence těchto příkazů, přičemž interpretace příkazů se v Brainfucku provádí sekvenčně, všechny neznámé znaky jsou ignorovány. Příkazy jsou prováděny postupně s několika výjimkami: Instrukční ukazatel je při spuštění programu nastaven nad první buňku a lze ho posouvat doleva či doprava. Každý příkaz, na který ukazuje, je vykonán, a poté se přesune k dalšímu příkazu. Program končí, když se instrukční ukazatel dostane za poslední příkaz.

Hello World napsaný v Brainfucku vypadá následovně:

++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>—.+++++++..+++.>>.<-.<.+++.——.——–.>>+.>++.

Chef

Programovací jazyk Chef vytvořil David Morgan-Mar a programy napsané v tomto jazyce vypadají jako recepty. Tedy vlastně jsou plnohodnotnými recepty. Hlavním principem jazyka je, že má kód nejen vytvořit validní výstup, ale být také snadný na přípravu a chutný. Nicméně potíž je v tom, že žádný známý compiler neumí poslední požadavek odbavit. Jazyk používá tento koncept:

  • ingredience – proměnná, označována coby ingredience, jejíž hodnota se rovná množství ingredience. Její stav (tekutý, suchý, nespecifikovaný) určuje, zda bude zobrazena jako znak Unicode (tekutina), nebo jako číslo. Všechny hodnoty jsou celé číslo.
  • misky a pekáče – stacky, ve kterých jsou uloženy celočíselné hodnoty. Všechny operace se provádějí v mísách. Pečicí nádoby jsou jen pro zobrazování výsledků.

Nejchutnější zápis Hello World:

Lobsters with Fruit and Nuts.

Ingredients.

72 g hazelnuts

101 eggs

108 g lobsters

111 ml orange juice

44 g cashews

32 g sugar

87 ml water

114 g rice

100 g durian

33 passion fruit

10 ml lemon juice

Method.

Put lemon juice into the mixing bowl.

Put passion fruit into the mixing bowl.

Put durian into the mixing bowl.

Put lobsters into the mixing bowl.

Put rice into the mixing bowl.

Put orange juice  into the mixing bowl.

Put water into the mixing bowl.

Put sugar into the mixing bowl.

Put cashews into the mixing bowl.

Put orange juice into the mixing bowl.

Put lobsters into the mixing bowl.

Put lobsters into the mixing bowl.

Put eggs into the mixing bowl.

Put hazelnuts into the mixing bowl.

Liquify contents of the mixing bowl.

Pour contents of the mixing bowl into the baking dish.

Serves 1.

Whitespace

Programovací jazyk studentů Edwina Bradyho a Chrise Morrise se světu představil 1. dubna 2003. Na rozdíl od většiny programovacích jazyků, které ignorují mezery, Whitespace dělá pravý opak. Význam mají pouze mezery, tabulátory a řádkování. Kromě toho, že to vypadá vážně efektně, to má i ryze praktickou funkci – program napsaný ve Whitespace může být jednoduše obsažen v mezerách programu, který je napsán v jiném jazyce.

Zde je ukázka komentovaného Hello World programu ve Whitespace. Kde každé mezeře, tabulátoru nebo řádkování předchází identifikační komentář „S“, „T“ nebo „L“:

S S S T  S S T           S S S L

T         L

S S S S S T                T          S S T   S T      L

T         L

S S S S S T                T          S T      T         S S L

T         L

S S S S S T                T          S T      T         S S L

T         L

S S S S S T                T          S T      T         T          T         L

T         L

S S S S S T                S T      T         S S L

T         L

S S S S S T                S S S S S L

T         L

S S S S S T                T          T         S T      T          T         L

T         L

S S S S S T                T          S T      T         T          T         L

T         L

S S S S S T                T          T         S S T  S L

T         L

S S S S S T                T          S T      T         S S L

T         L

S S S S S T                T          S S T   S S L

T         L

S S S S S T                S S S S T       L

T         L

S S L

L

L

Total
1
Shares
Další články
Přečtěte si více

Infografika: V e-shopech letos Češi utratí 51,2 miliardy

Obliba nakupování v e-shopech stále roste. V letošním roce obrat českých internetových obchodů vzroste na 51,2 miliardy korun (růst o 15 procent) a uskuteční se více než 26 milionů objednávek při průměrné výšce 1962 korun. Vyplývá to z odhadů nákupního rádce Heureka.cz, který data o české e-commerce shrnul do podrobné infografiky.
Přečtěte si více

Křišťálová Lupa vyhlásila vítěze: Ticketon, GoodData, Ondřej Fryc i Vladimír Franz

Každoroční internetová anketa Křišťálová Lupa zná své letošní vítěze. Na počet a sílu získaných ocenění ve čtrnácti kategoriích, z nichž polovinu vybírala porota a polovinu veřejnost, byl nejúspěšnější Mall.cz, po dvou cenách si odnesly ještě společnosti MAFRA a Seznam. Zvláštní cenu získal server zakomunistu.cz.