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 programozási nyelv - Wikipédia

Brainfuck programozási nyelv

A Wikipédiából, a szabad lexikonból.

A Brainfuck programozási nyelv egy 8 utasítást tartalmazó Turing (Turing-complete) programozási nyelv. A Brainfuck szó az angol brain (=agy) és fuck (=szexuálisan közösülni) szavakból áll össze, ami a programok nehéz megírására utal.

A nyelvet Urban Müller készítette Amiga OS 2.0 alá azzal a céllal, hogy olyan Turing-nyelvet hozzon létre, amire a lehető legkisebb fordítóprogramot meg tudja írni. (Ez eredetileg 240 byte hosszú volt, de híresztelések szerint sikerült később 200 byte alatt megírnia.)

A Turing-komplett nyelvekkel minden lehetséges program megírható. Mivel ez a lehetséges programozási módok közül az egyik legnehezebb, legátláthatatlanabb, ezért kaphatta a nyelv az "agycseszegető" nevet (finoman fordítva).

Tartalomjegyzék

[szerkesztés] A nyelv szerkezete

A Brainfuck nyelvnek egy univerzális byte mutatója van, aminek a neve "pointer", ami szabadon mozoghat egy 30 000 byte nagyságú tömbben, melynek alapértékei nullák. A pointer a tömb elején indul.

A nyelv 8 parancsát egy-egy karakter reprezentálja:

>   Pointer növelése eggyel
< Pointer csökkentése eggyel
+ A Pointernél levő byte növelése eggyel
- A Pointernél levő byte csökkentése eggyel
. A Pointernél levő byte kiírása
, Byte bekérése és a Pointernél tárolása
[ Ugrás a következő, megfelelő ] jelig ha a Pointer alatti byte nulla.
] Ugrás az előző, megfelelő [ jelig.

[szerkesztés] Példaprogramok

A legtöbb Brainfuck program több száz, vagy több ezer karakterből áll. Íme két extrém pici program, ami igazából semmi hasznosat nem csinál a bemutatáson túl.

[szerkesztés] ASCII

Az alábbi program kiírja az ASCII karakterkészletet; szerzője Jeffry Johnston, 2001

.+[.+]

[szerkesztés] Echo

Ez a program minden beadott karaktert kiír addig, míg egy ASCII 255 karaktert nem kap.

,+[-.,+]

[szerkesztés] Fordít

A beadott karaktereket kiadja ellensorrendben. (enter/soremel=10)

+[>,----- -----]<-[+ +++++ +++++.<-]

A következő példa ugyanazt csinálja mint az előző, de csak akkor működik, ha a fordító/interpreter az "entert" 0-vá alakítja (így nem kell sem levonni sem hozzáadni 10-et, mint az előbb).

>,[>,]<[.<]

[szerkesztés] TOP-BOT

Egy szimpla polyglot, amit 'a' meg 'b' karakterrel hajtunk [80x25]. (Pascal 6.0 meg BrainFuck nyelven is helyes, ugyanazt is csinálja)

uses
 crt;
var
 top:char; bot:char; ch:char;
 a:word;
begin
 top:=char(47); {>>>+++ +++[<++++ ++++[<+<+>>-]>-] <<-<-->}
 bot:=char(46);
 repeat {[}
  for a:=1 to 80 do {>++++ ++++[<..... .....>-]}
   write(top);
  for a:=1 to 1919 do{>> ++++ +++++[<+++ ++++[<+++ +++[<<.. ...>>-] >-] >-] }
   write(bot);       {<< +++ [<<.... .....>>-] <<..>>}
  ch:=readkey; {>>>,[<+<+<+>>>-]}
  write(ch);
  case ch of {+++++ +++++ [>+++++ +++++[<<-<->>>-]<-]}
   'a': inc(top); {+< +++[>[-]<-]>[<<<<+>>>>-]<}
   'b': inc(bot); {+< ++ [>[-]<-]>[<<<<+>>>>-]<}
   #27: top:=#0;  {+++[<---- ----->-] +< [>[-]<-]>[<<[-]<[-]>>>-]<<}
  end;
 until top=#0; {]}
end.

[szerkesztés] Külső hivatkozás

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