木匣子

Web/Game/Programming/Life etc.

只有 8 个指令的编程语言

如果一个编程语言只有8个指令,你一定会想:天啊,它能干嘛!

实际上,它是图灵完备所需的最少指令数。

在可计算性理论里,如果一系列操作数据的规则(如指令集、编程语言、细胞自动机)可以用来模拟单带图灵机,那么它是图灵完备的。

没错,这就是 Brainfuck 语言,它的八个指令是:> < + - . , [ ]

> 	右移指针
< 	左移指针
+ 	当前位置+1
- 	当前位置-1
. 	输出当前位置的ACSII码
, 	输入一个字符到当前位置
[ 	如果当前位置为0则跳转到匹配的]处
] 	跳转到匹配的[处

其应对的 C 语言指令是:

>  	++p;
<  	--p;
+  	++*p;
-  	--*p;
.  	putchar(*p);
,  	*p = getchar();
[  	while (*p) {
]  	}

用 Brainfuck 写出来的程序如同它的名字一样难懂,例如这个 hello world:

++++++++++[>+++++++>++++++++++>+++>+<<<<-]
>++.>+.+++++++..+++.>++.<<+++++++++++++++.
>.+++.------.--------.>+.>.

这段程序将会输出 Hello World!

我写了一段能输出233的程序:>+++++++[<+++++++>-]<+.+..

如果你有兴趣玩转 Brainfuck 的话,可以试试 Github 这一个基于 javascript 的 brainfuck-debug,可以在这里或者这里运行你的程序。

另外,在 http://codegolf.stackexchange.com 上面有很多大神用 brainfuck 实现各种不可思议的程序。

键盘快捷键

全局

?
快捷键帮助
/或⌘K
搜索
gh
首页
ga
归档
gt
标签
gc
分类
gg
回到顶部
G
跳到底部
h
较新一篇 / 上一页
l
较旧一篇 / 下一页
Esc
关闭弹窗

文章列表首页、归档、标签、分类

j
选中下一篇
k
选中上一篇
o或Enter
打开选中的文章

阅读文章和其他页面

j
向下滚动
k
向上滚动
yy
复制本页链接
c
跳到留言