我有一个用C编写的基本程序,想要将其转换为语言brainfsck,但是找不到相关资料。我发现许多“brainfuck to C”的转换器,但没有相反的情况。我找到了C2BF,但不知道如何使用它或者是否需要使用它。
我有一个用C编写的基本程序,想要将其转换为语言brainfsck,但是找不到相关资料。我发现许多“brainfuck to C”的转换器,但没有相反的情况。我找到了C2BF,但不知道如何使用它或者是否需要使用它。
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语言,但有非常容易学习的语法。
例如,在十进制系统中打印所有可被3整除的1到100的数字将是:
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
编译器非常优化,可以生成高度压缩的代码,就像这样
>>>>>>>>>+++>++++++++++<[<<<<<<<<<[-]>>[-]>>>>>[-]<<<[-]>>>>>[-<<<+>>>]<<<[->>>+<<<<<<<+>>>>]<<<<<[-
]>[-<+>]<[->>>>>>+[-<+>]<[->+>+<<]<++++++++++>>>[-<<<->>>]<<<[->+<]>[[-]<+>]<-[[-]>>[-]<<<<<+>>>]<<<
<]>[->>>>+<<<<]>>>>>[-<<<<<+>>>>>]<[->+<]>>[-]<[->+<]>[-<<<<+[->>+<<]>>[-<<+<+>>>]<++++++++++<<[->>-
<<]>>[->+<]>[[-]<+>]<-[[-]<[-]>>>+<<]>>>]<[-<+>]<<<[->>>+<<<]>>[-<<+>>]<<[->>+<<]>>[-<<+>>>>+<<]>>[-
<<+>>]<<[->>+<<<+>]<[[-]>++++++++[<<++++++>>-]<<.>]>>[-<+>]<[->+>+<<]>>[-<<+>>]<<[->>+<<<+>]<[[-]>++
++++++[>++++++<-]>.<<]>>>[-]<<++++++++[<<<<++++++>>>>-]<<<<.>>>>>>>>.<+++[-<<<+>>>]<<<[->>>+<<<<<<+>
>>]++++++++++[<++++++++++>-]<++<<[->>-<<]>>[->+<]>[[-]<+>]<-[[-]>>>>[-]<<<<]>>>>]