English
Logika (38K)

A brainfuck programozási nyelv

Sokszor írják még úgy is, hogy BrainFuck vagy BrainF***. Ezt a nyelvet valami Urban Müller nevű fickó találta ki, hogy tudjon valami Amiga OS 2.0-ra 256 byte-os compiler-t írni. Különlegessége abban rejlik, hogy a rendelkezésre álló mindössze 8  utasítással szinte minden feladat megoldható, amit egy számítógéppel szöveges módban meg lehet oldani!
Mosmán nem csigázlak tovább: nézzük a működését!
Egy BF program számára adott 30 000 tárolórekesz és egy M rekeszmutató, mely kijelöl egy rekeszt használatra. Indításkor a rekeszek ki vannak nullázva, a mutató pedig az elsô rekeszre mutat. A program számára rendelkezésre álló utasítások:

> A mutató növelése
< A mutató csökkentése
+ A kijelölt rekesz növelése
- A kijelölt rekesz csökkentése
, A kijelölt rekeszbe beolvastatás
. A kijelölt rekesznek megfelelô ASCII kódú jel kiíratása
[ Ugorj a megfelelô "]" után, ha a kijelölt rekeszben nulla van
] Ugorj a megfelelô "["-re
(A gyakorlatban az összes többi jel felhasználható kommentálásra, ha a fordító rendes)

114 utasításból álló "Hello world!" példa:

; 4 data and 1 nest used
++++++++[>+++++++++>++++>+<<<-]>.<
++++[>+++++++<-]>+.+++++++..+++.>.<
++++++++.--------.+++.------.--------.>+.>++.!

Mint látható elég fondorlatosan lehet feladatot megoldani, de ha valakinek ez nem elég összetett, találhat az angol BF site-okon PI számító programot is...
Egy utolsó érdekesség a BF-fel kapcsolatban:

Csavarkulcs (6K) ASCII BF interpreter:

PH5~~PY0H(0H,1H40H71H81H;1H@%@A4BPP^_X@P-<!rz$?4@PZXQktnQQsy+SX@csRt
Jw}o@Tj?\uQ?^o?}ZKPOKaaL`KXtBDsRXsPpQx`@dk@Vetn~Fgw{LQ|PhkGTe~utLdR{
BZ\DNH@yz{QE~O@vB`?oPK@MKZU@aKgLKAb{qwCK_`?o@TN}|p?Azp?A{pm@}lDvBxaL
`k`rpIsbFosRHOpzJPM@UD`vBPQaZ@_Aek`uDlsRXSPMKaCGxo@|gs]Gi[@E}jupcvnB
hl|hkk@JJODzVy\^eswJZ`?~wkneCG|zBHQ{F@CKklCO[Q]_SJId_NZSC]zrC_tRMkil
Ez a 202 bájtos elég teljes interpreterem, csak a kintsmef enkoderemmel átalakítva. A dekóder forrás az asmcompo-n elérhetô, ennek a forrása pedig nemsokára itt a letöltéseknél.
Használat: "BFI.COM < TESZTFIL.BF".
Telepítés: tedd szövegszerkesztôvel BFI.COM fájlba. Kell: 186+ PC, DOS vagy annak valamely grafikus alrendszere. Funkciók: ha lefagy a tesztelt progi, nyomj [ALT]-ot, ill. [ALT]+[Q]-t; Enter=0x0A, 0x0A=Újsor; 30k adat, 30k kód, 2k verem, bolond-biztos (és binárisan csak 202B...{igénytelen ~100B foglalna, de fejlesztésre és tesztelésre az itteni hasznosabb, mint akár egy kicsi értelmezô, akár egy fordító!}) Spec funkció: "!" jelzi a bemeneti BF fájl végét és a fájlban tárolt standard input kezdetét.

Lapok (24K) BF site-ok:



Elagazas (1K)

A csomag tartalma:

  1. bkil kezdôlapja
  2. Mér' vagyok ennyire elvetemült?
  3. Mi is az a brainfuck programozási nyelv? (ezt olvasod vagy mi)
  4. Parancsol egy kis KauS-t, esetleg?