Aller au contenu
Tout en local

Encodeur brainfuck

Transformez le texte en un programme Brainfuck qui l'imprime, ou exécutez un programme Brainfuck et voyez son résultat.

Entrée

Encodeur brainfuck

Collez n'importe quel texte et cet outil génère un programme Brainfuck qui l'imprime exactement, caractère par caractère. Il fonctionne aussi à l'envers : collez un programme Brainfuck et l'outil l'exécute, affichant ce qu'il produit. Basculez entre les deux avec l'option mode, ou utilisez le bouton d'échange pour envoyer directement un programme généré à l'interpréteur.

Activez "Optimiser la longueur avec des boucles" pour rendre le programme généré plus court : au lieu de répéter + jusqu'à 255 fois pour un caractère, il construit la valeur avec une petite boucle de multiplication. La taille de cellule contrôle la façon dont chaque caractère est stocké : 8-bit est le Brainfuck classique d'un octet par cellule, tandis que les cellules 16-bit et 32-bit contiennent un point de code entier par cellule pour que les lettres accentuées et les emoji se copient sans octets supplémentaires. Cellules de bande définit le nombre de cellules mémoire dont dispose l'interpréteur, et la limite d'étapes arrête une boucle incontrôlée de geler la page. "Afficher l'état de la bande après exécution" ajoute un instantané des cellules mémoire une fois le programme terminé, utile pour déboguer les boucles. Le code généré peut aussi être enveloppé à une largeur de ligne fixe pour une lecture plus facile.

Une entrée très longue produit un programme plus long, et les deux directions sont limitées pour que l'onglet du navigateur ne se bloque jamais. Vous obtiendrez un message clair indiquant quoi ajuster.

Tout s'exécute localement dans votre navigateur. Copiez le résultat, téléchargez-le sous forme de fichier .txt, effacez le panneau, ou renvoyez la sortie directement dans l'entrée pour continuer à travailler.

FAQ

Qu'est-ce que Brainfuck?
Brainfuck est un langage de programmation ésotérique minimaliste avec seulement huit commandes, construit autour d'une bande de cellules mémoire et un pointeur unique. Il est populaire en tant que curiosité et défi de code-golf, pas pour les vrais programmes.
Pourquoi le programme généré semble-t-il différent chaque fois que je change la taille de cellule?
La taille de cellule décide quelle valeur chaque caractère est stocké en tant que. Les cellules 8-bit contiennent un octet UTF-8, donc une lettre accentuée ou un emoji a besoin de plusieurs cellules ; les cellules 16-bit et 32-bit peuvent contenir un caractère entier à la fois, ce qui change à la fois les valeurs et le chemin le plus court vers eux.
Qu'est-ce qui se passe si mon programme a une boucle infinie?
L'interpréteur s'arrête dès qu'il atteint la limite d'étapes et signale que le programme ne s'est pas terminé, plutôt que de geler la page. Augmentez la limite d'étapes si le programme a légitimement besoin de plus d'étapes, ou corrigez la boucle.
Est-ce que la commande virgule (entrée) fonctionne?
L'outil n'a pas de flux d'entrée séparé pour un programme en cours d'exécution, donc `,` est toujours lu comme fin de fichier et définit la cellule actuelle à 0 — le même comportement auquel la plupart des interpréteurs reviennent une fois que l'entrée est épuisée.
Mon texte ou mon code est-il téléchargé quelque part?
Non. L'encodage et l'exécution d'un programme se produisent entièrement dans votre navigateur — rien de ce que vous collez ici n'est jamais envoyé à un serveur.