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". Sauf code licence open source explicite (indiqué Creative Commons / gratuit), l'algorithme pour "Brainfuck", l'applet ou snippet (convertisseur, solveur, chiffrement / déchiffrement, encodage / décodage, encryptage / décryptage, traducteur) ou les 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 les données, en téléchargement, script, ou les accès API à "Brainfuck" ne sont pas publics, idem pour un usage hors ligne, PC, mobile, tablette, appli iPhone ou Android !
Rappel : dCode est gratuit.
Le copier-coller de la page "Brainfuck" ou de ses résultats est autorisée (même pour un usage commercial) tant que vous créditez dCode !
L'exportation des résultats sous forme de fichier .csv ou .txt est gratuite en cliquant sur l'icone export
Citer comme source bibliographique :
Brainfuck sur dCode.fr [site web en ligne], consulté le 21/12/2024,