Skip to main content

Brainfuck Sisukord Süntaks | Hello world | Brainfucki interpretaator | Välislingid | Navigeerimismenüüimetilluke variantBrian Raiteri Brainfucki lehekülgFrans Faasei Brainfucki lehekülg, kust leiab ka õpetuseBrainfuck development environment with integrated debugger (IDE) for WindowsBrian Raiteri assembleris Linuxile kirjutatud Brainfucki kompilaatori lähtetekstBrainfucked

Programmeerimiskeeled


programmeerimiskeelUrban MüllerkompilaatorAmiga OS 2.0-leBrian RaiterLinuxileinterpretaatoreidDaniel B. Cristofaniimetilluke variantProgrammisviitmuutujabaitidemassiivisHello world












Brainfuck




Allikas: Vikipeedia






Jump to navigation
Jump to search


.mw-parser-output .infoboxborder:1px solid #a2a9b1;border-spacing:3px;background-color:#f8f9fa;color:black;margin:0.5em 0 0.5em 1em;padding:0.2em;float:right;clear:right;font-size:88%;line-height:1.5em.mw-parser-output .infobox captionfont-size:125%;font-weight:bold;padding:0.2em.mw-parser-output .infobox td,.mw-parser-output .infobox thvertical-align:top;text-align:left.mw-parser-output .infobox.borderedborder-collapse:collapse.mw-parser-output .infobox.bordered td,.mw-parser-output .infobox.bordered thborder:1px solid #a2a9b1.mw-parser-output .infobox.bordered .borderless td,.mw-parser-output .infobox.bordered .borderless thborder:0.mw-parser-output .infobox.sisterprojectwidth:20em;font-size:90%.mw-parser-output .infobox.standard-talkborder:1px solid #c0c090;background-color:#f8eaba.mw-parser-output .infobox.standard-talk.bordered td,.mw-parser-output .infobox.standard-talk.bordered thborder:1px solid #c0c090.mw-parser-output .infobox.bordered .mergedtoprow td,.mw-parser-output .infobox.bordered .mergedtoprow thborder:0;border-top:1px solid #a2a9b1;border-right:1px solid #a2a9b1.mw-parser-output .infobox.bordered .mergedrow td,.mw-parser-output .infobox.bordered .mergedrow thborder:0;border-right:1px solid #a2a9b1.mw-parser-output .infobox.geographyborder-collapse:collapse;line-height:1.2em;font-size:90%.mw-parser-output .infobox.geography td,.mw-parser-output .infobox.geography thborder-top:1px solid #a2a9b1;padding:0.4em 0.6em 0.4em 0.6em.mw-parser-output .infobox.geography .mergedtoprow td,.mw-parser-output .infobox.geography .mergedtoprow thborder-top:1px solid #a2a9b1;padding:0.4em 0.6em 0.2em 0.6em.mw-parser-output .infobox.geography .mergedrow td,.mw-parser-output .infobox.geography .mergedrow thborder:0;padding:0 0.6em 0.2em 0.6em.mw-parser-output .infobox.geography .mergedbottomrow td,.mw-parser-output .infobox.geography .mergedbottomrow thborder-top:0;border-bottom:1px solid #a2a9b1;padding:0 0.6em 0.4em 0.6em.mw-parser-output .infobox.geography .maptable td,.mw-parser-output .infobox.geography .maptable thborder:0;padding:0











Brainfuck
Faililaiend
.b, .bf
Paradigma
esoteeriline
Väljalaskeaeg
1993
Looja
Urban Müller
Mõjutatud keeltest
P", FALSE

Brainfuck on programmeerimiskeel, mille lõi Urban Müller eesmärgiga kirjutada maailma kõige väiksem kompilaator. Loomulikult vajas selline kompilaator ka maailma väikseimat programmeerimiskeelt, milleks saigi Brainfuck.


Urban Mülleril õnnestus kirjutada Amiga OS 2.0-le kompilaator, mis oli vaid 200 baidi suurune. Brian Raiter kirjutas Linuxile kompilaatori, mis saavutas suuruse 171 baiti. Brainfucki kompilaatoreid ja interpretaatoreid on eri autorid kirjutanud paljudes keeltes. Eriti tasub ära märkida Brainfucki interpretaatoreid, mis on kirjutatud Brainfuckis. Eeskätt Daniel B. Cristofani kirjutatud imetilluke variant.




Sisukord





  • 1 Süntaks


  • 2 Hello world


  • 3 Brainfucki interpretaator


  • 4 Välislingid




Süntaks |


Brainfuck on minimalistlik keel. Programmis on kesksel kohal üks globaalne viitmuutuja, mis programmi alguses viitab esimesele positsioonile suures baitide massiivis (võib olla näiteks 30 kilobaidi suurune), mis kõik on vaikimisi seatud väärtusele null. Keeles on kaheksa käsku, mis kõik koosnevad vaid ühest sümbolist:



  • > liigutab viida ühe positsiooni võrra edasi


  • < liigutab viida ühe positsiooni võrra tagasi


  • + suurendab viidatavat baiti ühe võrra


  • - vähendab viidatavat baiti ühe võrra


  • . kirjutab viidatava baidi tähemärgina programmi väljundisse


  • , loeb programmi sisendist tähemärgi ja kirjutab selle väärtuse viidatavasse baiti


  • [ liigub edasi vastava ']'-ni, kui viidatav bait võrdub nulliga


  • ] liigub tagasi vastava '['-ni, kui viidatav bait ei võrdu nulliga


Hello world |


Hello world programm Brainfuckis:


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


Brainfucki interpretaator |


Tegu on väga lihtsa C++ programmiga, mis näitab Brainfucki koodi väljundit seda kompileerimata.


#include <iostream>
#include <stack>
using namespace std;

int main()

unsigned char buffer[30000] = 0;
char *ptr = "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.";
unsigned char *ptr2 = buffer;
stack<char *> pos_stack;
while(*ptr && *ptr != EOF)

if(*ptr == '+') ++*ptr2;
if(*ptr == '-') --*ptr2;
if(*ptr == '>') ++ptr2;
if(*ptr == '<') --ptr2;
if(*ptr == ',') *ptr2 = cin.get();
if(*ptr == '.') cout << *ptr2;
if(*ptr == '[') pos_stack.push(ptr + 1);
if(*ptr == ']' && *ptr2 != 0) ptr = pos_stack.top();
else
if(*ptr == ']' && *ptr2 == 0) pos_stack.pop();
ptr++;

fflush(stdin);

return 0;



Välislingid |


  • Brian Raiteri Brainfucki lehekülg

  • Frans Faasei Brainfucki lehekülg, kust leiab ka õpetuse

  • Brainfuck development environment with integrated debugger (IDE) for Windows

  • Brian Raiteri assembleris Linuxile kirjutatud Brainfucki kompilaatori lähtetekst


  • Brainfucked kompilaator (Windows/DOS)




Pärit leheküljelt "https://et.wikipedia.org/w/index.php?title=Brainfuck&oldid=5045709"













Navigeerimismenüü

























(RLQ=window.RLQ||[]).push(function()mw.config.set("wgPageParseReport":"limitreport":"cputime":"0.096","walltime":"0.281","ppvisitednodes":"value":142,"limit":1000000,"ppgeneratednodes":"value":0,"limit":1500000,"postexpandincludesize":"value":1637,"limit":2097152,"templateargumentsize":"value":91,"limit":2097152,"expansiondepth":"value":4,"limit":40,"expensivefunctioncount":"value":0,"limit":500,"unstrip-depth":"value":0,"limit":20,"unstrip-size":"value":7763,"limit":5000000,"entityaccesscount":"value":0,"limit":400,"timingprofile":["100.00% 70.504 1 Mall:Programmeerimiskeel","100.00% 70.504 1 -total"," 95.30% 67.187 1 Mall:Infokast"],"scribunto":"limitreport-timeusage":"value":"0.014","limit":"10.000","limitreport-memusage":"value":801923,"limit":52428800,"cachereport":"origin":"mw1262","timestamp":"20190831094120","ttl":2592000,"transientcontent":false););"@context":"https://schema.org","@type":"Article","name":"Brainfuck","url":"https://et.wikipedia.org/wiki/Brainfuck","sameAs":"http://www.wikidata.org/entity/Q244627","mainEntity":"http://www.wikidata.org/entity/Q244627","author":"@type":"Organization","name":"Wikimedia projektide kaastu00f6u00f6lised","publisher":"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":"@type":"ImageObject","url":"https://www.wikimedia.org/static/images/wmf-hor-googpub.png","datePublished":"2004-08-26T14:43:39Z","dateModified":"2018-07-10T09:19:24Z"(RLQ=window.RLQ||[]).push(function()mw.config.set("wgBackendResponseTime":418,"wgHostname":"mw1262"););

Popular posts from this blog

Sahara Skak | Bilen | Luke uk diar | NawigatsjuunCommonskategorii: SaharaWikivoyage raisfeerer: Sahara26° N, 13° O

The fall designs the understood secretary. Looking glass Science Shock Discovery Hot Everybody Loves Raymond Smile 곳 서비스 성실하다 Defas Kaloolon Definition: To combine or impregnate with sulphur or any of its compounds as to sulphurize caoutchouc in vulcanizing Flame colored Reason Useful Thin Help 갖다 유명하다 낙엽 장례식 Country Iron Definition: A fencer a gladiator one who exhibits his skill in the use of the sword Definition: The American black throated bunting Spiza Americana Nostalgic Needy Method to my madness 시키다 평가되다 전부 소설가 우아하다 Argument Tin Feeling Representative Gym Music Gaur Chicken 일쑤 코치 편 학생증 The harbor values the sugar. Vasagle Yammoe Enstatite Definition: Capable of being limited Road Neighborly Five Refer Built Kangaroo 비비다 Degree Release Bargain Horse 하루 형님 유교 석 동부 괴롭히다 경제력

19. јануар Садржај Догађаји Рођења Смрти Празници и дани сећања Види још Референце Мени за навигацијуу