Li Yingping's Studio.

Brainfuck与2019的新年仪式感

字数统计: 482阅读时长: 1 min
2018/12/31

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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
+++++ +++++
[
> +++++ ++
> +++++ +++++
> +++
> +++++
> +
<<<<< -
]
> + .
> +++++ +++++ + .
.
----- ----- - .
-- .
+++++ +++++ +++++ +++++ +++ .
----- ----- ----- ----- .
> ++ .
> .
-- .
+ .
+++++ ++ .
< + .
>> .
<<<< + .
> .
+++++ ++ .
.
+++ .
> - .
> ----- - .
-- .
+ .
+++++ +++ .
< + .
>> .
CATALOG
  1. 1. Brainfuck语言简介
  2. 2. Brainfuck的开发工具
  3. 3. 辞旧迎新的仪式感