Brainfuck

z Wikipédie, slobodnej encyklopédie
Prejsť na: navigácia, hľadanie

Brainfuck vytvoril Urban Müller ako programovací jazyk s najmenším prekladačom všetkých čias. Na Amiga OS 2.0 zaberal len 240 bajtov (údajne sa mu to podarilo neskôr zlepšiť na menej ako 200 bajtov).

Jazyk obsahuje 8 príkazov, pomocou ktorých je možné pracovať s jediným smerníkom, ktorý ukazuje na bajt v poli o veľkosti 30000 bajtov (pole je inicializované na 0) a smerník je inicializovaný na počiatok tohto poľa.

Každý z príkazov jazyka je reprezentovaný jediným znakom:

Popis
> inkrementovať smerník
< dekrementovať smerník
+ inkrementovať hodnotu, na ktorú smerník ukazuje
- dekrementovať hodnotu, na ktorú smerník ukazuje
. vypísať bajt, na ktorý smerník ukazuje
, načítať bajt, na ktorý smerník ukazuje
[ skok dopredu, za zodpovedajúce ], ak bajt, na ktorý smerník ukazuje, je rovný 0
] skok dozadu, na zodpovedajúce [, ak bajt, na ktorý smerník ukazuje, je rôzny od 0

Príkazy jazyka je možné vyjadriť v jazyku C takto (predpokladajme že p bol definovaný ako char *):

Brainfuck príkaz C Príkaz
> ++p;
< --p;
+ ++*p;
- --*p;
. putchar(*p);
, *p = getchar();
[ while (*p) {
] }

Externé odkazy[upraviť | upraviť zdroj]