05 Langages de programmation ésotériques

Non, nous ne quittons pas maintenant le domaine de la logique pour entrer dans notre domaine intérieur, spirituel, de la connaissance.

Langages de programmation ésotériques seraient peut-être un peu mieux intitulés “exotiques” et décriraient des langages de programmation qui n’ont pas été créés pour une utilisation pratique, mais à des fins de démonstration, de plaisanterie académique ou par pur ennui (de personnes très douées).

Pour les mystères du géocaching, il est d’abord important de savoir que de telles choses existent, afin de pouvoir, le cas échéant, les rechercher ainsi que les interprètes (traducteurs), ou au moins la syntaxe, et décoder le listing de cette manière. Voici donc quelques exemples parmi les plus courants et, espérons-le, des liens à suivre.

Le langage de programmation le plus courant que j’ai rencontré jusqu’à présent est le merveilleusement nommé “Brainf**k“. Brainf**k se compose de seulement huit commandes, chacune représentée par un seul caractère : <>+-.,[] .

Un programme pourrait alors ressembler à ceci, par exemple :

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

L’assistant GC fournit un traducteur. Cela fonctionne également avec de nombreux dérivés de Brainfuck, où les caractères de Brainfuck ont simplement été remplacés. Et, bien sûr, le GC Wizard (quelle transition soignée ;)) fournit un traducteur pour le langage basé sur Brainfuck “Ook” (les lecteurs de Terry Pratchett se sentiront ici chez eux).

Ook est le premier langage de programmation qui vise à être compris par l’orang-outan moyen. Il se compose de trois éléments seulement : Ook. Ook ? Et Ook!

Exemple :

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

Si vous tombez un jour sur un texte qui comporte des espaces inhabituellement bizarres (ctrl-a pourrait vous les montrer), consultez “Whitespace“. C’est là que le contenu pertinent se cache dans tous les espaces, tabulations et sauts de ligne présents ! Vous pouvez trouver des exemples ici.

Je trouve assez amusante l’approche du langage de programmation “Chef” : transmettre le code du programme dans une recette de cuisine. Ici, les ingrédients sont les variables, les ingrédients liquides sont des caractères Unicode, tous les autres ingrédients sont des chiffres. Il y a aussi des instructions comme Liquifier pour convertir et des bols à mélanger ou des moules à pâtisserie pour stocker les piles.

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 propose des recettes en allemand et en anglais 😀

Bon appétit!

Vous vous souvenez du poème du début ? Les programmes peuvent se cacher ici, aussi. Farfelu ? Oui – c’est Beatnik. Les mots sont interprétés et exécutés en tant que commandes à l’aide des valeurs d’un jeu Scrabble.

Un peu compliqué de dire bonjour – mais pourquoi pas :

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.

Le SPL (Shakespeare Programming Language), dont le code source ressemble à une pièce de théâtre, est également un peu spécial.

Extra pour les nécromanciens maléfiques ( !), il y a Zombie, qui – en quelque sorte logiquement – convoque les morts.

Et pour les amoureux du jargon du net, il y aurait LOLCODE.

Si vous avez déjà rencontré des images de pixels aux couleurs déroutantes dans un mystère, vous pourriez vouloir jeter un coup d’œil à Piet. Ce langage cache son code dans des images gif colorées qui ressemblent aux tableaux du peintre Piet Mondrian.

Voici un interprète en ligne : http://www.dangermouse.net/esoteric/piet/samples.html
Et voici de nombreux programmes d’exemple, donc des images : http://www.bertnase.de/npiet/npiet-execute.php

Et bien d’autres exemples de langages de programmation ésotériques peuvent être trouvés sur le grand, très grand, web :

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

Amusez-vous bien à naviguer et à “démystifier”. Il n’y aura pas de traducteur pour certaines de ces manigances informatiques, vous devrez apprendre à comprendre la syntaxe en cas de doute et à comprendre logiquement le secret du programme.