Brainfuck

Аз Википедиа
Ҷаҳиш ба: новбари, Ҷустуҷӯи

Brainfuck (аз инглисӣ: brain+fuck) — яке аз забонҳои машҳури эзотерикӣ мебошад ва ин забонро Урбан Мюллер (Urban Müller) соли 1993 ихтироъ кардааст. Забон ҳамагӣ 8 фармон дорад, ки ҳар кадомаш бо як рамз ифода меёбад. Коди ибтидоӣ дар забони Brainfuck аз пайдарпаии ин рамзҳо бе ягон имлои иловагӣ иборат аст.

8 фармони забони Brainfuck:
> гузаштан ба катаки оянда
< гузаштан ба катаки пешина
+ қиммати катакро 1-то зиёд кардан
- қиммати катакро 1-то кам кардан
. қиммати катакро чоп кардан
, аз берун қимматеро дохил карда ба катак захира кардан
[ агар қиммати катак ба сифр баробар бошад, гузариш ба пеш ба катаки мувофиқи матни барнома ] (кодҳои дохили якдигар ба ҳисоб гирифта мешаванд)
] агар қиммати катак ба сифр баробар набошад, гузариш ба қафо ба катаки мувофиқи матни барнома ] (кодҳои дохили якдигар ба ҳисоб гирифта мешаванд)

Забони Brainfuck-ро бо воситаи эквивалентҳои забони Си ифода намудан мумкин аст (тахмин карда мешавад, ки тағйирёбандаи ptr ҳамчун нишондиҳанда ба байт гирифта шудааст):

фармони Brainfuck эквиваленташ дар Си
> ++ptr;
< --ptr;
+ ++*ptr;
- --*ptr;
. putchar(*ptr);
, *ptr=getchar();
[ while (*ptr) {
] }

Бо вуҷуди соддагии забони Brainfuck бо маҷмӯи беохири катакҳо ин забон дорои пуррагӣ аз рӯи Тюринг аст, пас, аз рӯи имкониятҳои худ ба забонҳои «ҳақиқӣ» ҳамчун Си, Паскал ё Java гузашт намекунад.

Brainfuck-ро барои таҷрибаҳо дар барномасозии генетикӣ аз рӯи соддагии имло ва навиштани коди ибтидоӣ истифода бурдан мумкин аст.

Дар забони "классикии "Brainfuck, ки Мюллер тавсиф намудааст, андозаи катак — як байт ва шумораи катакҳо бошад 30000 буд. Дар ҳолати ибтидоӣ нишондиҳанда дар мавқеи аз ҳама чап воқеъ шуда, катакҳои боқимонда бо сифрҳо пур кардашудаанд.

Мисоли барнома[вироиш]

Барномасозӣ бо забони Brainfuck[вироиш]

Пайвандҳо[вироиш]