
SPOJ的多语言确实很牛,竟然连WhiteSpace语言也支持(很早就听说过这种语言,它的代码仅仅包含空格、Tab和回车三个字符,其余字符一律不认)。今天,我在提交语言的列表里看到了另一个叫brainf**k的语言,顿时来了兴趣。
brainf**k=BrainFuck。如果哪天我发明一种语言叫“太他妈的牛逼了”,矜持一点的OJ也会称呼它“太XXX牛B语言”。这种语言符合图灵机模型,语法暴简单,通篇8种字符,一看就会:
> 指针加一
< 指针减一
+ 指针指向的字节的值加一
- 指针指向的字节的值减一
. 输出指针指向的单元内容(ASCII码)
, 输入内容到指针指向的单元(ASCII码)
[ 如果指针指向的单元值为零,向前跳转到对应的]指令的次一指令处
] 如果指针指向的单元值不为零,向回跳转到对应的[指令的次一指令处
比如,下面这段代码可以在屏幕上打印出“Hello World!”:++++++++++[>+++++++>++++++++++>+++>+<<<<-]
>++.>+.+++++++..+++.>++.<<+++++++++++++++.
>.+++.------.--------.>+.>.
后来,我