Ebooks, Audobooks and Classical Music from Liber Liber
a b c d e f g h i j k l m n o p q r s t u v w x y z





Web - Amazon

We provide Linux to the World


We support WINRAR [What is this] - [Download .exe file(s) for Windows]

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
Brainfuck (programlingvo) - Vikipedio

Brainfuck (programlingvo)

El Vikipedio

Komputiko > Programlingvo > Brainfuck


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***, 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, referenco al la tabelo (komence referas al la unua bitoko de la tabelo), kaj du vicoj da bitokoj por enigo kaj eligo.

La unuaj ok instruckioj, ĉiu nur unuliteraj, estas:

Signo Signifo
> 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*:

Brainfuck C
> ++ptr;
< --ptr;
+ ++*ptr;
- --*ptr;
. putchar(*ptr);
, *ptr = getchar();
[ while (*ptr) {
] }

Enhavo

[redaktu] Ekzemploj

[redaktu] Saluton, mondo!

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!

[redaktu] Enigo/eligo de signoj

,.

Enigi unu signon de la klavaro kaj eligi ĝin al la ekrano

[redaktu] Simpla itero

,[.,]

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 ,[.[-],]

[redaktu] Manipulado de referencoj

,[.>,]
Versio de la lasta ekzemplo kiu ankaŭ konservas ĉiun enigon en la tabelo por estonta uzo, per ĉiufoje movi la referencon.


[redaktu] Eksteraj ligoj

Our "Network":

Project Gutenberg
https://gutenberg.classicistranieri.com

Encyclopaedia Britannica 1911
https://encyclopaediabritannica.classicistranieri.com

Librivox Audiobooks
https://librivox.classicistranieri.com

Linux Distributions
https://old.classicistranieri.com

Magnatune (MP3 Music)
https://magnatune.classicistranieri.com

Static Wikipedia (June 2008)
https://wikipedia.classicistranieri.com

Static Wikipedia (March 2008)
https://wikipedia2007.classicistranieri.com/mar2008/

Static Wikipedia (2007)
https://wikipedia2007.classicistranieri.com

Static Wikipedia (2006)
https://wikipedia2006.classicistranieri.com

Liber Liber
https://liberliber.classicistranieri.com

ZIM Files for Kiwix
https://zim.classicistranieri.com


Other Websites:

Bach - Goldberg Variations
https://www.goldbergvariations.org

Lazarillo de Tormes
https://www.lazarillodetormes.org

Madame Bovary
https://www.madamebovary.org

Il Fu Mattia Pascal
https://www.mattiapascal.it

The Voice in the Desert
https://www.thevoiceinthedesert.org

Confessione d'un amore fascista
https://www.amorefascista.it

Malinverno
https://www.malinverno.org

Debito formativo
https://www.debitoformativo.it

Adina Spire
https://www.adinaspire.com