Le Brainfuck, créé par Urban Müller en 1993, est un langage de programmation considéré comme exotique en raison de son utilité limitée dans la création d'applications pratiques. Sa conception vise à être délibérément difficile à lire, d'où son nom "Brainfuck" (littéralement "brain" pour cerveau et "fuck" pour perturber), soulignant sa complexité. Ce langage est souvent utilisé comme moyen d'obfusquer des messages, ajoutant ainsi une couche de sécurité à la communication. Vous pouvez ajouter des arguments au programme en les séparant par un espace s'il y en a plusieurs (pour les cas où le programme demande une entrée).
Bien que le Brainfuck puisse sembler difficile à maîtriser, il est théoriquement possible de créer n'importe quel programme avec lui, car il est * Turing-complet. Cependant, la complexité résultante rend son utilisation peu pratique pour des tâches courantes. Le langage Brainfuck se compose uniquement de huit instructions primaires, chacune ayant un effet spécifique sur le pointeur et la valeur de l'octet pointé.
Caractère | Effet |
---|---|
> | Augmente la valeur du pointeur de 1 |
< | Diminue la valeur du pointeur de 1 |
+ | Incrémente la valeur de l'octet pointé |
- | Décrémente la valeur de l'octet pointé |
. | Sortie (affichage) de l'octet pointé au format ASCII |
, | Entrée d'un octet à l'endroit du pointeur (format ASCII) |
[ | Saute à l'instruction après le ] si l'octet pointé a une valeur nulle |
] | Retourne à l'instruction juste après le [ si l'octet pointé est différent de zéro |
Ces instructions, bien que minimalistes, permettent de coder toutes les fonctions possibles, les crochets [ et ] jouant le rôle de boucles. Ainsi, des structures de contrôle telles que des conditions if...else peuvent être réalisées. L'exemple suivant illustre un simple programme "Hello World".
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.
Pour plus d'informations et des exemples supplémentaires, vous pouvez consulter la page Wikipedia dédiée au Brainfuck. Bien que le Brainfuck soit rarement utilisé pour des applications sérieuses, il est théoriquement possible de créer n'importe quel programme avec. Cependant, il est important de noter que le Brainfuck n'est pas une méthode de chiffrement, bien qu'il puisse être utilisé comme un outil d'obfuscation pour "chiffrer" un texte de manière particulière.