Brainfuck

Iz MaFiRaWiki

Ta članek ali del članka je v delu. Veseli bomo, če ga boste dopolnili in popravili.

Kaj pomeni to opozorilo?

Brainf*ck je univerzalni programski jezik, ki ima samo 8 inštrukcij. Leta 1993 ga je ustvaril Urban Müller, da bi imel programski jezik, za katerega bi lahko naredil najmanjši možni prevajalnik.

Osnova jezika je polje (array) 30000-ih byte-ov in kazalec (pointer) nanj. Ko program poženemo, kaže kazalec na prvi element v polju, vsi elementi polja pa so 0.

Ukazi

Vsak ukaz predstavlja en znak in sicer:

Ukaz Pomen
> zvečaj kazalec (pokaži na naslednji element v polju)
< zmanjšaj kazalec (pokaži na prejšnji element v polju)
+ povečaj (za 1) vrednost byte-a, na katerega kaže kazalec
- zmanjšaj (za 1) vrednost byte-a, na katerega kaže kazalec
. na stdout izpiši trenutno vrednost (kamor kaže kazalec)
, prebere 1 byte s stdin-a in ga shrani (kamor kaže kazalec)
[ nadaljuj za pripadajočim ] če je trenutna vrednost 0 (kamor kaže kazalec)
] pojdi nazaj za pripradajoč [ če je vrednost kazalca različna od 0

Primer

Program izpiše na standardni izhod znak @. Vsi simboli razen ukazov so spregledani(kar dopušča komentarje).

+>>+++[
<<[>++<-]     zanka
>[<++>-]>-
]<<           zdaj je v tem kazalcu shranjena vrednost 2*2*2 * 2*2*2 ali 64
.             izpiše to vrednost, kar v ASCII predstavlja znak @

Program brez komentarjev:

+>>+++[<<[>++<-]>[<++>-]>-]<<.
Osebna orodja