Brainfuck - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Variantes

Brainfuck a de nombreux descendants. La plupart se contentent de rendre le code encore plus inextricable (par exemple f*ckf*ck, le langage Pi, ou bien Ook! décrit ci-dessous); d'autres ajoutent de réelles fonctionnalités.

Ook!

Le langage Ook est une variante de brainfuck. C'est un langage Turing-complet, conçu pour être parfaitement lisible par un orang-outan, en référence au personnage du bibliothécaire de l'univers du Disque-monde de Terry Pratchett.

Ook Brainfuck Signification
Ook. Ook? > incrémente (augmente de 1) le pointeur.
Ook? Ook. < décrémente (diminue de 1) le pointeur.
Ook. Ook. + incrémente l'octet du tableau sur lequel est positionné le pointeur (l'octet pointé).
Ook! Ook! - décrémente l'octet pointé.
Ook! Ook. . sortie de l'octet pointé (valeur ASCII).
Ook. Ook! , entrée d'un octet dans le tableau à l'endroit où est positionné le pointeur (valeur ASCII).
Ook! Ook? [ saute à l'instruction après le Ook? Ook! correspondant si l'octet pointé est à 0.
Ook? Ook! ] retourne à l'instruction après le Ook! Ook? si l'octet pointé est différent de 0.
Hello world en Ook :

Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook! Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook? Ook. Ook. Ook! Ook. Ook. Ook? Ook! Ook.

Spoon

Le langage spoon est équivalent au langage brainfuck mais avec des mots constitués de 0 et 1.

Spoon Brainfuck Signification
010 > incrémente (augmente de 1) le pointeur.
011 < décrémente (diminue de 1) le pointeur.
1 + incrémente l'octet du tableau sur lequel est positionné le pointeur (l'octet pointé).
000 - décrémente l'octet pointé.
0010110 , entrée d'un octet dans le tableau à l'endroit où est positionné le pointeur (valeur ASCII).
001010 . sortie de l'octet pointé (valeur ASCII).
00100 [ saute à l'instruction après le 0011 correspondant si l'octet pointé est à 0.
0011 ] retourne à l'instruction après le 00100 si l'octet pointé est différent de 0.

Hello world en spoon :

1 1 1 1 1 1 1 1 1 1 00100 010 1 1 1 1 1 1 1 010 1 1 1 1 1 1 1 1 1 1 010 1 1 1 010 1 011 011 011 011 000 0011 010 1 1 001010 010 1 001010 1 1 1 1 1 1 1 001010 001010 1 1 1 001010 010 1 1 001010 011 011 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 001010 010 001010 1 1 1 001010 000 000 000 000 000 000 001010 000 000 000 000 000 000 000 000 001010 010 1 001010 010 001010

Les espaces peuvent être supprimés :

Hello world en spoon (sans espace)

1111111111001000101111111010111111111101011101010110110110110000011010110010100101001010111111100 1010001010111001010010110010100110111111111111111110010100100010101110010100000000000000000000010 100000000000000000000000000010100101001010010001010

Cela fait bien entendu référence à un fichier binaire (exécutable).

SegFaultProg

Le langage Segfaultprog est une variante du brainfuck, enrichie, extensible, destinée à être exécutée en machine virtuelle, sur de petites architectures (AVR, PIC, MIPS...). Son développement à débuté en mai 2010. Ce langage propose une simplification de la syntaxe du brainfuck (par exemple, avec l'adressage direct, et en évitant les répétitions), et rétro-compatibilité avec celui ci.

Hello world en SegFaultProg :

*A+H.[-]+e.+7..+3.*B+32.*A+8.-8.+3.[-]+d.

Page générée en 0.076 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise