我们来做大脑操
写下这个题目的时候哈,shellex又一次,情不自禁地,为我们汉语的博大精深而热泪盈眶。多么美妙的翻译啊,大脑操,要是鹰语就不行咯,彻底沦于庸俗:brainfuck。当然了,还有一些女士叫法,比如brainf**k(请看我的文章分类),b*fuck,brainf*ck等等。但是不管你怎么叫它,它都是brainfuck,是为了fuck你的brain而生的。
这个语言绝对是世界上最淫荡的语言之一了。虽然Shellex很早就知道它的淫荡,但是直到今天才介绍给大家,还望见谅咯。
好吧,这么说有点无聊,但是它不是为了fuck你的brain而生的。按照作者的说法,他想写一个最小的图灵完备的计算机语言,那么如果稍微接触一下brainfuck你会发现他也许真的达到目标了。因为brainfuck程序就是像一个图灵机那样运作。
语言说明:
Brainfuck 程序中有一个隐含的指针, 被称为 “the pointer”, 它能在一个长度为30 000字节的数组上来回移动。这个数组总是被初始化为0,而指针则总是被初始化指向数组的头部。
Brainfuck 语言很简单,只有8个指令,都用一个字符来表示
< 指针左移.
> 指针右移.
+ 指针自增.
- 指针自减.
. 输出当前指针指向的字节.
, 接受一个输入并储存在当前当前字节.
[ 如果当前指针不为0,则运行直到遇到]
] 如果当前指针不为0,跳回到匹配的 [
Shellex的brainfuck解释器的实现中,还私自添加了一个扩展指令:
$ 在内存监视器打印程序内存情况.
当然了,Brainfuck的语义可以简洁地用C语言的形式来表达(假设p是一个char *类型的变量)
> becomes ++p;
< becomes --p;
+ becomes ++*p;
- becomes [...]