С компилятором брейкфук?
У меня есть базовая программа на C, которую я хочу преобразовать в язык brainfsck, но не могу найти ничего по этому вопросу. Я нахожу много конвертеров "брейкфак в С", но не наоборот. Я нашел C2BF, но не понимаю, как его использовать или если это то, что мне нужно.
2 ответа
C2BF - это C-программа, которая распространяется как C-исходный код.
Для сборки C2BF вам нужно установить svn, Gnu Make и yacc и flex. После того, как вы скомпилировали C2BF самостоятельно, он должен делать именно то, что вы ожидаете.
Если вы используете какой-то вкус Linux:
cd ${HOME}
svn co https://c2bf.svn.sourceforge.net/svnroot/brainfuck/c2bf/trunk c2bf
cd c2bf
sudo apt-get install bison flex # or yum install bison flex
YACC=bison make
должен дать вам компилятор в ${HOME}/c2bf/cc/c2bf-cc
,
Если вы используете Windows, вы должны установить что-то вроде MinGW или cygwin для компиляции.
Я могу только порекомендовать использовать https://brainfuck.antosser.xyz/.
Это веб-сайт, который может скомпилировать легко читаемый код для Brainfuck. Это не C, но его синтаксис очень прост для изучения.
Например, печать всех чисел от 1 до 100, делящихся на 3, в десятичной системе будет выглядеть так:
var i 3
var newl 10
#while i
printdec i
print newl
add i 3
#if i num 102
set i 0
#end
#end
#end
Компилятор очень оптимизирован и производит сильно сжатый код, такой как этот
>>>>>>>>>+++>++++++++++<[<<<<<<<<<[-]>>[-]>>>>>[-]<<<[-]>>>>>[-<<<+>>>]<<<[->>>+<<<<<<<+>>>>]<<<<<[-
]>[-<+>]<[->>>>>>+[-<+>]<[->+>+<<]<++++++++++>>>[-<<<->>>]<<<[->+<]>[[-]<+>]<-[[-]>>[-]<<<<<+>>>]<<<
<]>[->>>>+<<<<]>>>>>[-<<<<<+>>>>>]<[->+<]>>[-]<[->+<]>[-<<<<+[->>+<<]>>[-<<+<+>>>]<++++++++++<<[->>-
<<]>>[->+<]>[[-]<+>]<-[[-]<[-]>>>+<<]>>>]<[-<+>]<<<[->>>+<<<]>>[-<<+>>]<<[->>+<<]>>[-<<+>>>>+<<]>>[-
<<+>>]<<[->>+<<<+>]<[[-]>++++++++[<<++++++>>-]<<.>]>>[-<+>]<[->+>+<<]>>[-<<+>>]<<[->>+<<<+>]<[[-]>++
++++++[>++++++<-]>.<<]>>>[-]<<++++++++[<<<<++++++>>>>-]<<<<.>>>>>>>>.<+++[-<<<+>>>]<<<[->>>+<<<<<<+>
>>]++++++++++[<++++++++++>-]<++<<[->>-<<]>>[->+<]>[[-]<+>]<-[[-]>>>>[-]<<<<]>>>>]