[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [Au dela du HS et Bruit et Digression] Brainfuck



On Mon, May 26, 2003 at 06:48:20PM +0000, François Boisson wrote:
> PS: Tu peux donner une présentation succinte de Brainfuck :-), le nom me
> plait

C'est le langage le plus petit du monde, au point que c'est
presque plus un assembleur pour machine virtuelle qu'un
langage...

Donc: Il y a un pointer, qui se déplace dans une mémoire
initialisée à 0. Le programme est consititué d'une suite
d'instructions parmi:

>   incrémente le pointeur  ( ++p )
<   décrémente le pointeur  ( --p )
+   incrémente le pointé    ( ++*p )
-   décrémente le pointé    ( --*p )
.   écrit le pointé à l'écran
,   saisit un nombre, l'écrit dans le pointé
[   Saute après le ] correspondant si le pointé est nul
]   Saute au [ correspondant

Un exemple qui écrit les premiers nombres de la suite de
Fibonacci:

+++++++++++
>+>>>>++++++++++++++++++++++++++++++++++++++++++++
>++++++++++++++++++++++++++++++++<<<<<<[>[>>>>>>+>
+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>>-]<[>++++++++++[-
<-[>>+>+<<<-]>>>[<<<+>>>-]+<[>[-]<[-]]>[<<[>>>+<<<
-]>>[-]]<<]>>>[>>+>+<<<-]>>>[<<<+>>>-]+<[>[-]<[-]]
>[<<+>>[-]]<<<<<<<]>>>>>[+++++++++++++++++++++++++
+++++++++++++++++++++++.[-]]++++++++++<[->-<]>++++
++++++++++++++++++++++++++++++++++++++++++++.[-]<<
<<<<<<<<<<[>>>+>+<<<<-]>>>>[<<<<+>>>>-]<-[>>.>.<<<
[-]]<<[>>+>+<<<-]>>>[<<<+>>>-]<<[<+>-]>[<+>-]<<<-]

Formidable!
(version commentée:
http://esoteric.sange.fi/brainfuck/bf-source/prog/fibonacci.txt)

Le langage a été prouvé "Turing-complete", donc on doit
pouvoir réécrire Linux avec... Le plus gros interêt bien sûr
est de résoudre les problèmes de logiques/math qui vont
avec: "Quelle est la plus petite chaine d'instructions pour
créer la constante 5? Et la constante 25?"

5 est facile: +++++
15: >+++++[<+++++>-]    (à vue de nez... je suis pas spécialiste)

Voilà voilà. "Brainfuck" dans google ne renvoie que des
liens sur ce langage, et pas d'insanités.

Si ça, c'est pas plus facile à apprendre qu'Ocaml... Bien
sûr, il est peut-être plus difficile de faire qqch avec ;)

/Y

-- 
Marbles should be kept together.



Reply to: