05 Esoteric Programming Languages

No, we are not leaving the realm of logic now and entering our inner, spiritual realm of knowledge.

Esoteric programming languages might be a little better titled as “exotic” and describe programming languages that were not created for practical use, but for demonstration purposes, as academic jokes or out of sheer boredom (of highly gifted people)

For geocaching mysteries, it is first important to know that such things exist, so that in case they do, you can search for them and interpreters (translators), or at least the syntax, and thus decode the listing. So here are a few of the more common examples and hopefully links to further information.

The programming language I’ve encountered most often so far is the wonderfully named “Brainfuck“. Brainfuck consists of just eight commands, each represented by a single character: <>+-.,[] .

A programme could then look like this, for example:

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

The GC Wizard offers a translator. This also works with numerous brainfuck derivatives where the brainfuck characters have simply been replaced. And of course the GC Wizard (what a neat transition ;)) offers a translator for the Brainfuck-based language “Ook” (Terry Pratchett readers will feel right at home here).

Ook is the first programming language that aims to be understood by the average orangutan. It consists of only three elements: Ook. Ook? And Ook!

Example:

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.

If you ever stumble across some text that has unusually strange spaces (ctrl-a might show them to you), check out “Whitespace“. This is where the relevant content is hidden in all the existing spaces, tabs and line breaks! You can find examples here.

I find the approach of the programming language “Chef” quite funny: to transmit programme code within a cooking recipe. Here, the ingredients are the variables, liquid ingredients are Unicode characters, all other ingredients are numbers. There are also instructions such as Liquify to convert and mixing bowls or baking tins to store stacks.

Hello World in “Chef” might then look like this:

The Hello World dessert àla Nina:
Ingredients.
72 g haribo colorado
97 g gummi bears
108 g children’s chocolate
111 cups oil
32 marzipan bread
87 ml water
101 eggs
116 g candies
33 biscuits

Method.
Put biscuits 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 marzipan bread into the mixing bowl. Put oil into the mixing
bowl. Put kinderschokolade into the mixing bowl. Put children’s chocolate into the mixing bowl. Put
gummy bears into the mixing bowl. Put haribo colourado into the mixing bowl.
Liquify contents of the mixing bowl. Pour contents of the mixing bowl into
the baking dish.

Serves 1.

GC Wizard offers both English and German recipes 😀

Good appetite!

Remember the poem from the beginning? Programmes can hide here too. Whacky? Yes – that’s Beatnik. The words are interpreted as commands using the values of a Scrabble game and executed.

A bit complicated to say “Hi” – but why not:

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.

Also somehow special is the SPL (Shakespeare Programming Language) , whose source code looks like a play.

Extra for evil (!) necromancers there is Zombie, which – somehow logically – summons the dead.

And for the crass-cool net lingo lovers there would be the LOLCODE .

If you ever come across confusingly colourful pixel images in a mystery, you might want to take a look at Piet. This language hides its code in colourful gif images that resemble the paintings of painter Piet Mondrian.

Here’s an online interpreter: http://www.dangermouse.net/esoteric/piet/samples.html
And here are lots of sample programs, i.e. images: http://www.bertnase.de/npiet/npiet-execute.php

And many more examples of esoteric programming languages can be found on the big, wide web:

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

Have fun browsing and “demystifying”. For some of these IT gimmicks there will be no translator, there you have to learn to understand the syntax in case of doubt and logically get to the bottom of the programme’s secret.