Brainfuck
Vzhľad
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) { |
] | } |