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

вироиш

Пайвандҳо

вироиш