ebooksgratis.com

See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Brainfuck - Wikipedia

Brainfuck

Fra Wikipedia, den frie encyklopedi

Brainfuck er et programmeringsspråk kjent for sin ekstreme minimalisme. Det ble designet for å utfordre og underholde programmerere, og passer ikke for praktisk bruk.

Innhold

[rediger] Språkdesign

Urban Müller laget brainfuck rundt 1993, I den hensikt å lage et språk som kunne bli implementert med en minst mulig kompilator [1]. Det har blitt laget flere brainfuck kompilatorer mindre enn 200 bytes. Den klassiske distribusjonen er Müllers versjon 2, som inneholder en kompilator for Amiga, en tolker, eksempelprogrammer, og et lesmeg (readme) dokument.

Språket består av åtte kommandoer, listet nedenfor. Et brainfuck-program er en rekke av disse kommandoene, noen ganger med andre tegn imellom (som blir ignorert). Kommandoene blir kjørt sekvensielle, med unntak notert nedenfor.

Brainfuck-språket bruker en enkel maskinmodell som består av, utenom programmet, en rekke med 30,000 byte-celler initialisert til null, en bevegelig peker i rekken og to strømmer av bytes for input og output (vanligvis koblet til et tastatur og en skjerm, og med ASCII tegnsettet).

[rediger] Kommandoer

De åtte språkkommandoene, hver bestående av ett enkelt tegn, er som følger:

Tegn Mening
>
øk pekeren (til å peke på den neste cellen til høyre).
<
minsk pekeren (til å peke på den neste cellen til venster).
+
øk (med en) byten på pekeren.
-
minsk (med en) byten på pekeren.
.
skriv ut byten på pekeren.
,
aksepter en byte med input og lagre det i byten på pekeren.
[
hopp forover til kommandoen etter den tilhørende ] hvis byten på pekeren er null.
]
hopp tilbake til kommandoen etter den tilhørende [ hvis byten på pekeren ikke er null.

[rediger] Eksempler

[rediger] Hello World!

Det følgende programmet skriver "Hallo Verden!" og en newline:

++++++++++
[
   >+++++++>++++++++++>+++>+<<<<-
]
>++. print 'H'
>---. print 'a'
+++++++++++. 'l'
. 'l'
+++. 'o'
>++. mellomrom
<<++++++++++++++. 'V'
>----------. 'e'
+++++++++++++. 'r'
--------------. 'd'
+. 'e'
+++++++++. 'n'
>+. '!'
>. newline

For lesbarhetens skyld har koden blitt spredt utover mange linjer og kommandoer blitt lagt til. Brainfuck behandler alle tegn utenom +-<>[],. som kommentarer så ingen spesiell syntaks for kommentarer trengs. Koden kunne like gjerne blitt skrevet som:

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

[rediger] Trivielt

[rediger] Enkel løkke

,[.,]

En løkke som tar tekst input fra tastaturet og skriver det til skjermen.

[rediger] Pekermanipulasjon

>,[.>,]

En versjon av det forrige som i tillegg lagrer alt input i rekken med bytes ved å flytte pekeren hver gang.

[rediger] Addisjon

[->+<]

Denne legger byten på den nåværende posisjonen til byten på den neste posisjonen.

[rediger] Links


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -