Quand le code informatique prend la forme d'un poème

Quand le code informatique prend la forme d'un poème

Les développeurs aventureux connaissent pour certains le brainfuck, langage de programmation ésotérique volontairement illisible, dont le "Hello World" s'écrit de la façon suivante:

++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.

Un collègue m'a récemment nerd-snipé en m'introduisant au langage poetic, encore plus torturé. Dans ce langage, la longueur des mots utilisés contient les instructions à interpréter (à la manière du Pilish). L'auteur est donc libre du texte qu'il écrit, tant que les mots sont de la bonne longueur. Maux de têtes assurés… Mais, un jour avec quelques heures à perdre, j'ai relevé le défi.

Fol ingénieux a rongé sa foi, désespéré, voyant le code.
À un idéal de rêve, oraison funèbre.
Les astuces des besogneux, las, s'effacent dans la console.
Var, const, let, amis d'un jour, les servants joviaux,
Sont maintenant durs, corrompant l'âme de feu V8.
Inanimé, mort, il aura le même sort qu'un byte code de chimère.
Nos litanies ont engendré l'espoir, fou,
d'un web assembly, ici Wasm dénommé,
pour retrouver logique, fil véloce des idées,
qu'on sera étonnés après quatre, six, douze années,
d'avoir nié, même levante, l'existence!

L'interpréteur lit les instructions suivantes. Chaque "7" correspond à l'écriture d'un caractère en sortie de programme. Le "0" (codé par un mot de dix lettres) marque la fin de l'exécution.

39 1 52 39 62 41 2 52 47 7
37 39 39 42 7
35 34 34 38 7
49 49 42 31 (…V8) 7
42 42 44 44 42 7
37 38 7
33 38 34 7
49 7
36 35 44 7
56 35 66 34 7
0

Pour comprendre les instructions, il est utile de se référer à la table ASCII.  Par exemple, la première ligne est une boucle qui calcule 9*9 puis retire 7, et affiche le caractère d'indice 74, la lettre "J". En dernière ligne, les instructions "56 35 66" ne servent à rien – incrément d'un byte non lu par la suite – si ce n'est à me permettre de conclure le poème d'une façon vaguement compréhensible sans en altérer le résultat.

En parlant de résultat :

$ python3 poetic.py input.ptc
JavaScript

Mais je ne crois pas que partager un CV codé en poetic soit gage de succès !