05 Esoterische Programmiersprachen

Nein, wir verlassen jetzt nicht den Bereich der Logik und begeben uns in unseren inneren, spirituellen Erkenntnisraum.

Esoterische Programmiersprachen wären als „exotisch“ möglicherweise etwas besser betitelt und beschreiben Programmiersprachen, die nicht für den praktischen Einsatz, aber für Demonstrationszwecke, als akademische Scherze oder aus purer Langeweile (hochbegabter Menschen) entstanden sind.

Für Geocaching-Mysteries ist es erstmal wichtig zu wissen, dass es derartiges gibt, damit man im Fall der Fälle nach diesen und Interpretern (Übersetzern) oder doch wenigstens der Syntax suchen und das Listing so entschlüsseln kann. Hier also ein paar der üblicheren Beispiele und hoffentlich weiterführende Links.

Am häufigsten begegnete mir bislang die Programmiersprache mit dem wundervollen Namen „Brainfuck“. Brainfuck besteht aus nur acht Befehlen, die jeweils durch ein einziges Zeichen dargestellt werden: <>+-.,[] .

Ein Programm könnte dann zum Beispiel so aussehen:

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

Der GC Wizard bietet einen Übersetzer. Dieser funktioniert auch mit zahlreichen Brainfuck-Derivaten, bei denen die Brainfuck-Zeichen einfach ersetzt wurden. Und natürlich bietet der GC Wizard (was für ein hübscher Übergang ;)) einen Übersetzer für die auf Brainfuck basierenden Sprache „Ook“ (Terry-Pratchett-Leser fühlen sich hier sofort wie Zuhause).

Ook ist die erste Programmiersprache, die es sich zum Ziel gesetzt hat, von einem durchschnittlichen Orang-Utan verstanden zu werden. Sie besteht nur aus drei Elementen: Ook. Ook? Und Ook!

Beispiel:

Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook.

Wenn ihr mal über einen Text stolpert, der ungewöhnlich seltsame Leerzeichen aufweist (strg-a könnte sie euch zeigen), schaut euch mal „Whitespace“ an. Hier verbergen sich die relevanten Inhalte in allen vorhanden Leerzeichen, Tabs und Zeilenumbrüchen! Beispiele findet ihr hier.

Ziemlich witzig finde ich den Ansatz der Programmiersprache „Chef“ : Programmcode innerhalb eines Kochrezeptes zu übermitteln. Hierbei sind die Zutaten die Variablen, flüssige Zutaten stellen UnicodeZeichen da, alle sonstigen Zutaten sind Zahlen. Außerdem gibt es Anweisungen wie zum Beispiel Liquify zum Umwandeln und Rührschüsseln oder Backformen zum Speichern von Stacks.

Hallo World in „Chef“ könnte dann so aussehen:

Der Hallo Welt Nachtisch àla Nina:
Ingredients.
72 g haribo colorado
97 gummibären
108 g kinderschokolade
111 cups oil
32 marzipanbrot
87 ml water
101 eggs
116 g bonbons
33 kekse

Method.
Put kekse into the mixing bowl. Put bonbons into the mixing bowl.
Put kinderschokolade into the mixing bowl. Put eggs into the mixing bowl. Put water into
the mixing bowl. Put marzipanbrot into the mixing bowl. Put oil into the mixing
bowl. Put kinderschokolade into the mixing bowl. Put kinderschokolade into the mixing bowl. Put
gummibären into the mixing bowl. Put haribo colorado into the mixing bowl.
Liquify contents of the mixing bowl. Pour contents of the mixing bowl into
the baking dish.

Serves 1.

GC Wizard bietet dabei sowohl deutsche als auch englische Rezepte an 😀

Guten Appetit!

Erinnert ihr Euch noch an das Gedicht vom Anfang? Auch hier können sich Programme verstecken. Abgefahren? Ja – das ist Beatnik. Die Wörter werden mit den Werten eines Scrabble-Spieles als Befehle interpretiert und ausgeführt.

Etwas kompliziert, um “Hi” zu sagen – aber warum nicht:

Baa, badassed areas!
Jarheads' arses
      queasy nude adverbs!
    Dare address abase adder? *bares baser dadas* HA!
Equalize, add bezique, bra emblaze.
  He (quezal), aeons liable.  Label lilac "bulla," ocean sauce!
Ends, addends,
   duodena sounded amends.

Auch irgendwie besonders ist die SPL (Shakespeare Programming Language) , deren Quelltext aussieht wie ein Theaterstück.

Extra für böse (!) Totenbeschwörer gibt es Zombie, die – irgendwie logisch – Tote beschwört.

Und für die krass-coolen Netzjargonliebhaber gäbe es noch den LOLCODE .

Wer mal in einem Mystery auf verwirrend bunte Pixelbildchen stößt, könnte sich vielleicht einmal mit Piet beschäftigen. Diese Sprache verbirgt ihren Code in bunten Gif-Bildern, die den Bildern des Malers Piet Mondrian ähnlich sehen.

Hier gibt’s einen Online-Interpreter: http://www.dangermouse.net/esoteric/piet/samples.html
Und hier jede Menge Beispielprogramme, also Bilder: http://www.bertnase.de/npiet/npiet-execute.php

Und noch viel mehr Beispiele für esoterische Programmiersprachen finden sich im großen, weiten Netz:

  • http://esolangs.org/wiki/Language_list
  • http://www.99-bottles-of-beer.net/
  • http://www.dangermouse.net/esoteric/

Viel Spaß beim Stöbern und “entmystifizieren”. Für manche dieser IT-Spielereien wird es keinen Übersetzer geben, da muss man im Zweifel die Syntax verstehen lernen und dem Programm logisch hinter sein Geheimnis kommen.