Outil pour décoder/encoder en Brainfuck, langage de programmation ésotérique constitué de caractères comme ++++---[+++].
Brainfuck - dCode
Catégorie(s) : Langage de Programmation
dCode est gratuit et ses outils sont une aide précieuse dans les jeux, les maths, les énigmes, les géocaches, et les problèmes à résoudre au quotidien !
Une suggestion ? un problème ? une idée ? Écrire à dCode !
Brainfuck (ou BF ou Brainf**k) est un langage de programmation minimaliste qui utilise seulement huit commandes pour manipuler la mémoire et effectuer des opérations.
Il tire son nom de l'union de deux mots anglais, brain (cerveau) et fuck (foutre), allusion à une frustration majeure pour le cerveau (ou à une masturbation cérébrale).
Le Brainfuck fonctionne comme une Machine de Turing, avec tête de lecture/écriture (pointeur) qui manipule une mémoire tampon. Les 8 opérations machines possibles sont :
— > : incrémente la position du pointeur (augmentation de 1),
— < : décrémente la position du pointeur (diminution de 1),
— + : incrémente l'octet de la case mémoire sur laquelle est positionné le pointeur,
— - : décrémente l'octet de la case mémoire sur laquelle est positionné le pointeur,
— . : envoie en sortie la valeur de l'octet pointé (qui est traitée comme une valeur ASCII),
— , : insère un octet en entrée (saisie utilisateur) dans la case mémoire où est positionné le pointeur (valeur ASCII),
— [ : si l'octet pointé est à 0 alors saut à l'instruction après le ] correspondant,
— ] : si l'octet pointé est différent de 0 alors saut à l'instruction après le [ correspondant
Brain Fuck n'est pas d'un chiffrement mais un langage de programmation obfusqué/illisible.
L'encodage Brainfuck consiste donc à écrire du code machine (input) qui renvoie du texte en sortie (output).
En pratique, incrémenter la case mémoire du pointeur jusqu'à la valeur ASCII désirée et afficher en sortie le caractère correspondant.
Exemple : Le code constitué de 36 + suivi d'1 point ++++++++++++++++++++++++++++++++++++. affiche $ (symbole Dollar, code ASCII 36)
Afin de raccourcir le code, il existe une syntaxe alternative (Brainfuck-raccourci) (BF-shortcut) qui utilise i pour incrément, d pour décrément, r pour right (droite), l pour left (gauche) chacun associé à un nombre pour indiquer le nombre de répétition de l'opération. Il permet de gagner en compacité et légèrement en lisibilité du code.
Exemple : i4 pour ++++ (+ 4 fois), d3 pour --- (- 3 fois), r5 pour >>>>>, l4 pour <<<<
Là encore il ne s'agit pas d'un déchiffrement mais d'une interprétation du code (un traducteur de Brainfuck en texte).
Avec un interpreteur et un compilateur brainfuck, chaque octet renvoyé en sortie apparait dans la console comme un caractère du message clair.
Remplacer les iX, dX, rX et lX par respectivement des +, -, >, < X fois pour retrouver le code BF original.
Le message est composé des 8 caractères ><+-.,[] (chevron ouvrant, chevron fermant, plus, moins, point, virgule, crochet ouvrant, crochet fermant).
Le caractère [ doit apparaitre autant de fois que le caractère ]
Les caractères + et - sont les plus fréquents et apparaissent généralement en groupe de +++ ou de ---. Il est peu logique (mais possible) d'avoir + et - consécutivement.
Les caractères . et , sont les moins fréquents.
Toutes références au cerveau, au mal de tête/crane sont des indices.
Le brainfuck manipule une bande de mémoire tampon, l'état mémoire est le contenu de cette mémoire.
dCode propose l'affichage du tampon mémoire sous forme de tableau : [position] = caractère (code ASCII)
Plusieurs variantes du Brainfuck sont devenus des langages ésotériques (esolang) comme Alphuck, Binaryfuck, Ook, Blub, Pikalang, Reversefuck ou Spoon.
Le Brainfuck n'est jamais utilisé comme langage dans des projets de développement réels en raison de sa complexité et de son manque de fonctionnalités.
Cependant il est parfois utilisé à des fins éducatives, pour enseigner des concepts de programmation tels que la manipulation de la mémoire, les boucles et les sauts conditionnels.
Il peut également être utilisé comme un défi pour les programmeurs souhaitant tester leurs compétences et leur compréhension des concepts fondamentaux de la programmation.
Le langage BF a été imaginé par Urban Müller en 1993.
dCode se réserve la propriété du code source pour "Brainfuck". Tout algorithme pour "Brainfuck", applet ou snippet ou script (convertisseur, solveur, chiffrement / déchiffrement, encodage / décodage, encryptage / décryptage, traducteur) ou toutes fonctions liées à "Brainfuck" (calculer, convertir, résoudre, décrypter / encrypter, déchiffrer / chiffrer, décoder / encoder, traduire) codés en langage informatique (Python, Java, C#, PHP, Javascript, Matlab, etc.) ou toute base de données, ou accès API à "Brainfuck" ou tout autre élément ne sont pas publics (sauf licence open source explicite type Creative Commons). Idem avec le téléchargement pour un usage hors ligne sur PC, mobile, tablette, appli iPhone ou Android.
Rappel : dCode est une ressource éducative et pédagogique, accessible en ligne gratuitement et pour tous.
Le contenu de la page "Brainfuck" ainsi que ses résultats peuvent être copiés et réutilisés librement, y compris à des fins commerciales, à condition de mentionner dCode.fr comme source.
L'export des résultats est gratuit et se fait simplement en cliquant sur les icônes d'export ⤓ (format .csv ou .txt) ou ⧉ copier-coller.
Pour citer dCode.fr sur un autre site Internet, utiliser le lien :
Dans un article scientifique ou un livre, la citation bibliographique recommandée est : Brainfuck sur dCode.fr [site web en ligne], consulté le 18/04/2025,