Le Brainfuck

Sortez les dolicrânes

Le Brainfuck

Hello les gens !

Dans une conférence aux Web2Day 2016, Daniel Glazman a dit que pour être dev il faut un ordi (logique), un bureau pour poser son auguste ordi, une chaise pour poser son auguste postérieur, et un cerveau (bon ça encore j'ai des doutes quand je vois certaines hérésies dans mon métier), mais saviez vous qu'il existe une famille de langages de progs qui sont très "simples" d'un point de vue machine, mais un véritable casse-tête pour nos cerveaux ?

Hello World en Brainfuck avec des commentaires

Le Brainfuck est un langage de prog créé en 1993 par Urban Müller, dony le principe est d'être le plus "simple" et léger possible, avec seulement 8 instructions possibles, chacune représentée par un caractère différent, et d'en faire un langage dit "Turing-Complet", ce qui veut dire qu'il doit être équivalent au fonctionnement d'une Machine de Turing, et donc les programmer.

Si vous savez pas qui est Alan Turing ni ce qu'est sa machine, et n'avez pas envie de vous farcir sa biographie, allez voir le film The Imitation Game, retenez juste que cet homme est un des pères de l'informatique moderne avec la mathématicienne Ada Lovelace

Les langages de programmation courant comme le C ou le Java sont Turing-Complet, et servent de base à toute l'informatique moderne (surtout le C), donc avec du Brainfuck on doit pouvoir faire la même chose qu'avec du C (genre recoder le premier Doom).

Mais comme vous avez pu le voir plus haut, le Brainfuck, à lire c'est compliqué, et encore le code pour afficher "Hello World" que je vous ai montré est commenté et a la coloration syntaxique, mais si vous regardez le screenshot ci dessous, vous verrez exactement le même code, mais sans rien de tout ça, et vous comprendrez pourquoi ce langage porte ce nom là.

Promis c'est le même code qu'en haut

Vous comprenez pourquoi il porte ce nom là je pense, mais vu que mes confrères techos sontt des petits coquinous, et que quand on peut faire une connerie, on va la faire (petite pensée aux serveurs de mon IUT que j'avais DDOS avec un Forkbomb en Python qui calculait les décimales de Pi), il existe désormais une famille de langages dits Brainfuck.

Vu que le Brainfuck repose sur seulement 8 instructions, théoriquement n'importe quel langage qui reprend ce concept est un langage Brainfuck, on peut par exemple penser au langage préféré des Ourang-Outan, le Ook.

Ça c'est un Hello World en Ook

Vu qu'en ce moment c'est les 30 ans de Pokémon, je vais aussi en parler, on a aussi un langage Brainfuck pour eux, il s'agit du Pikalang, un langage de prog fait pour Pikachu.

Oui encore un Hello World

Allé, un dernier pour la route car c'est celui qui m'a inspiré cet article, il existe un autre langage qui se rapproche du Brainfuck, mais n'est techniquement pas un dérivé du Brainfuck, il s'agit du langage MNM, qui comme son nom l'indique, est basé sur les 6 couleurs de base des M&M's (oui je sais qu'il y en a plus avec les paquets dérivés, et son créateur aussi, mais bon).

Bon, pour les anti-IA je suis désolé, le créateur de ce langage s'en sert pour pouvoir générer une version visuelle des programmes créés en MNM avec des bonbecs, au pire vous pouvez le faire vous même à la main après avoir acheté un paquet au supermarché du coin.

I made a programming language with M&Ms
I built a tiny programming language where programs are candy grids, complete with a renderer, photo decoder, AST tree, and execution trace.

Pourquoi des devs s'amusent à faire ce genre de langage me direz vous ? Parce qu'ils le peuvent, tout simplement.

Je dis souvent que quand j'ai une connerie en tête, je vais la faire, et bah sachez que chez les techos c'est la base ce genre de conneries.

Evidemment des langages dérivés du Brainfuck il y en a une tétrachiée, je vais pas tous vous les lister ici, car le wiki de esolang.org le fait bien mieux que moi, si vous voulez en savoir plus sur les langages Brainfuck je vous invite à vous tourner vers eux.

Trivial brainfuck substitution - Esolang