Brainfuck

Úr Wikipediu, frjálsa alfræðiritinu
Stökkva á: flakk, leita

Brainfuck, einnig kallað brainf*ck, brainf*** eða BF, er lítið heimullegt forritunarmál sem er Turing-samhæft, en það var búið til af Urban Müller í kringum árið 1993.

Í Brainfuck forritunarmálinu eru eingöngu átta skipanir, og hver þeirra er táknuð með einu tákni. Málið er þannig hannað að það eru 2^{16} = 65536 minnishólf sem hvert getur geymt tölu á bilinu 0 til 255. Þá er einn bendir sem segir hvaða stak í minnisfylkinu er verið að benda á. Skipanirnar eru þannig:

> Leggja einn við bendinn (færa um eitt minnishólf til hægri)
< Draga einn frá bendinum (færa um eitt minnishólf til vinstri)
+ Leggja einn við gildi núverandi minnishólfs
- Draga einn frá gildi núverandi minnishólfs
[ Hefja endurtekningu sem hættir er núverandi stak nær núlli.
] Ljúka endurtekningu
, Lesa inn eitt bæti af gögnum í valið minnishólf.
. Skrifa út eitt bæti frá völdu minnishólfi.

Þýðendur[breyta]

Brainfuck þýðendur eru mjög einfaldir í notkun. Dæmi um rauntíma Brainfuck túlk skrifaður í Perl af Juerd Waalboer:

#!/usr/bin/perl -s # |bf; bf $file; bf -e=,
$|++;undef$/;$_=$e||<>;tr/-+,.[]<>//cd;for$
a(qw%]} [while($p[$p]){ -$p[$p]-- +$p[$p]++
,$p[$p]=ord(getc) .print(chr($p[$p])) <$p--
>$p++%){s/\Q${\substr$a,0,1}/${\substr$a,1}
;/g}eval; # by Juerd <juerd@juerd.nl>, 2001

Tenglar[breyta]