Brainfuck语言简介
Brainfuck是一个极小化的编程语言,简称BF。1993年,Urban Müller发明了这一语言,初衷是实现一种简单的、可以用最小的编译器来实现的图灵完备的语言。该语言基于一个简单的机器模型,除了指令还包括一个被初始化为0的数组、一个指向数组的指针和两个输入输出字节流。一如它的名字所暗示的,这是一种颇为令人崩溃的编程语言,以晦涩难懂而著称。
为了体会一下BF语言的面貌,这里例行献上一段Hello World的实现:1
2
3++++++++++[>+++++++>++++++++++>+++>+<<<<-]
>++.>+.+++++++..+++.>++.<<+++++++++++++++.
>.+++.------.--------.>+.>.
Brainfuck只有8种状态,由8个符号标识,其规则为:
标识 | 意义 |
---|---|
> | 指针加一 |
< | 指针减一 |
+ | 指针指向的字节加一 |
- | 指针指向的字节减一 |
. | 以ASCII码形式输出指针指向的单元的内容 |
, | 以ASCII码形式将输入存入指针指向的单元 |
[ | 若指针指向的单元值为0,向后跳转到对应的]状态 |
] | 若指针指向的单元值不为0,向前跳转到对应的[状态 |
Brainfuck的开发工具
其实开发Brainfuck有一个趁手的Editor就足够了,当然,运行程序还需要一个编译器,这里有一个Python实现pocmo/Python-Brainfuck。除此之外,还有一个非常值得推荐的Brainfuck可视化工具,一定意义上,也算是优化了Brainfuck的使用体验,护脑神器啊!这是其GitHub Repo:fatiherikli/brainfuck-visualizer
辞旧迎新的仪式感
今天是2018年的最后一天,作为一个程序员还是想找一些仪式感的。一段Brainfuck的代码,你好,2019!
1 | +++++ +++++ |