eo eo eo eo eo eo eo eo eo eo eo it eo fr eo en eo fr eo it eo fr eo ru eo tr eo yue eo eo eo en en fr ru en fa fr ru it zh fr es ru en tr fr yue kn pt eo it eo war eo eo eo eo eo eo es eo eo fa eo eo pt eo eo pt eo eo eo eo en eo es eo eo eo lt eo eo eo eo de es eo eo eo eo eo sv eo ur eo eo eo eo es eo eo eo eo eo eo eo eo tr fi eo eo it eo eo eo eo eo eo eo eo eo eo ca hbs_lat da de en es et eu fa fi fr he hu is it ja ko ms nl nb pa pl pt ro ru sk sl sv en th tr fy vi zh eo eo eo eo eo eo eo eo eo
El Vikipedio, la libera enciklopedio
1 ŝanĝo en ĉi tiu versio atendas kontrolon. La stabila versio estis patrolita je 13 aŭg. 2015.
Brainfuck estas minimumisma komputillingvo kreita de Urban MÜLLER ĉirkaŭ 1993. Ĉar "fuck" estas fivorto en la angla, la lingvo estas ankaŭ nomata Brainf*ck, Brainf***, (ŝerce) B****fuck[1], aŭ simple BF.
La celo de Müller estis krei simplan Turing-kompletan komputillingvon, kiu povus esti implementita per kiel eble plej malgranda tradukilo. La lingvo konsistas el nur ok instrukcioj. Versio 2 de la originala tradukilo, verkita por la komputilo Amiga, estis nur 240 bitojn granda.
Kiel sugestas la nomo ("Brainfuck" signifas "Cerbofiko"), programoj en Brainfuck inklinas al nekomprenebleco, kvazaŭ tiom, ke la programisto freneziĝu. Tamen, la Turing-maŝino, do tial ankaŭ Brainfuck, povas plenumi ajnan komputan taskon. Malgraŭ la malfacileco programi iajn taskojn en Brainfuck, tamen certe eblas fari tiel.
La lingvo estas bazita sur simpla maŝinmodelo, kiu konsistas el, krom la programo, tabelo komence nula, indiko al la tabelo (komence indikas al la unua bitoko de la tabelo), kaj du vicoj da bitokoj por enigo kaj eligo.
La unuaj ok instruckioj, ĉiu nur unuliteraj, estas:
altigu la referencon je unu paŝo
malaltigu la referencon je unu paŝo
altigu la bitokon ĉe la referenco je 1.
malaltigu la bitokon ĉe la referenco je 1.
eligu de la bitoko ĉe la referenco (en Askio).
enigu al la bitoko ĉe la referenco (en Askio).
saltu antaŭen al la instrukcio post la responda ] se la bitoko ĉe la referenco estas nula.
saltu malantaŭen al la responda [.
(Por simetrieco, iuj diras ke ] saltas reen nur se la bitoko ĉe la referenco estas nenula, sed fine estas tute egale.)
Brainfuck-programoj povas esti transliteritaj al C per la jenaj anstataŭoj, kie ptr estas de datumtipo char*:
1.2 Enigo/eligo de signoj
1.4 Manipulado de referencoj
Ekzemploj[redakti | redakti fonton]
Saluton, mondo![redakti | redakti fonton]
Programo kiu eligas sur la ekrano "Hello, world!" ("Saluton, mondo!") estas:
Brainfuck estas tre interesa pro ĉi tiu kazo, ĉar "Saluton, mondo" programo estas nek malgranda nek facile verkebla!
Enigo/eligo de signoj[redakti | redakti fonton]
Enigi unu signon de la klavaro kaj eligi ĝin al la ekrano
Simpla itero[redakti | redakti fonton]
Sindaŭriga itero kiu prenas klavaran enigon kaj eĥigas ĝin al la ekrano. Rimarku ke ĉi tiu supozas ke 0 estas la signalo de enigofino; implementoj varias pri ĉi tiu temo. Versioj por -1 kaj "neniu ŝanĝo" estas ,+[-.,+] and ,[.[-],]
Manipulado de referencoj[redakti | redakti fonton]
Versio de la lasta ekzemplo kiu ankaŭ konservas ĉiun enigon en la tabelo por estonta uzo, per ĉiufoje movi la referencon.
Eksteraj ligiloj[redakti | redakti fonton]
Versio 2 de la originala tradukilo (angle)
Brainfucked - Brainfuck Compiler (angle)
Referencoj[redakti | redakti fonton]
Informoj pri la paĝo
Citi ĉi tiun artikolon
Ĉi tiu paĝo estis lastafoje redaktita je 16:10, 8 jun. 2016.
La teksto disponeblas laŭ la permesilo Krea Komunaĵo Atribuite-Samkondiĉe 3.0 Neadaptita; eble aldonaj kondiĉoj aplikeblas. Vidu la uzkondiĉojn por detaloj.
Regularo pri respekto de la privateco
Vidigo por porteblaj aparatoj