说来编程语言我们都知道吧,比如说C、C++、Java、Python之类的,这些语言的可读性都比较高,比如说C语言的hello,world程序这样写:
#include<stdio.h>
int main(){
printf("hello,world!\n");
return 0;
}
你看,include、main、printf、return这些关键字都很自然化,不过今天我要说的是一款可读性几乎为0的语言:Brainfuck!出于文明的考虑,我们还是叫他BF语言吧。
这个语言的解释器在github有,我来贴出来链接:http://fatiherikli.github.io/brainfuck-visualizer/
我们来看一下他初始给的hello,world程序:

BF初始给的hello,world程序
我们来介绍一下这个语言的关键字:
+ ----- 当前字节数+1
- ----- 当前字节数-1
> ----- 向下一个字节移动
< ----- 向上一个字节移动
. ----- 输出当前字节的内容
[ ----- 循环的开始
[ ----- 循环的结束
来看一下效果

再看看循环命令,这个也不是很复杂,假如给你一个任务,把第一字节的值加到100,如果是刚刚接触这个语言的人一定会想到写100个+然后搞定,不过你知道10×10=100吗?没错,这个就用到了循环,我们需要循环10次,循环的每一次都把字节加10,这样就可以达到效果,代码如下:
>++++++++++[<++++++++++>-]<
没错,就是这么的杂乱无序,先来看看效果:

执行流程:首先前往第二字节然后加到10然后进入循环,进入循环第一步回到第一字节加10然后前往第二字节减掉1,不然就会成为死循环,因为在循环尾部他会判断当前字节是否为0,如果否则会重复执行。在循环结束后就会回到第一字节,100就出来了,并不是打100个+然后……
那么会了循环,我们来输出Hello,world吧!
要输出Hello,world,首先就要输出一个H,H的ascii码是72,当然会了循环这会很简单代码如下:
>++++++++[<+++++++++>-]<.
执行结果:

输出H
我们已经完成了第一步,那么接下来的步骤依次类推就行了。看一下完整代码:
>++++++++[<+++++++++>-]<.>>++++++++++[<++++++++++>-]<+.>>++++++++++++[<+++++++++>-]<.>>++++++++++++[<+++++++++>-]<.>>++++++++++[<+++++++++++>-]<+.>>++++[<+++++++++++>-]<.>>++++++++++[<+++++++++++>-]<+++++++++.>>++++++++++[<+++++++++++>-]<+.>>++++++++++[<+++++++++++>-]<++++.>>++++++++++++[<+++++++++>-]<.>>++++++++++[<++++++++++>-]<.
是不是很复杂。。。
那么,就这样吧,进入我的个人空间查看更多内容!