在2021年5月23日,我收藏了一个视频 少年,会写“Hello,World”吗?,当时对视频中的Brainfuck语言特别感兴趣,但是由于学业压力,导致我没有时间来学习它。
在高一学习了 Python 后,我对编程有了初步了解,一次偶然间,我找到了 Brainfuck 的编译器 brainfuck-visualizer, 并用 Vercel 自建了一个,以便更好的了解BF语言。
Brainfuck,简称BF,是一种极小化的程序语言,由Urban Müller在1993年创造。Fuck在英语中是脏话,所以这种语言有时称为Brainf*ck或Brainf*** ,或者只用简称。1
下面是BF语言中八种状态的描述,其中每个状态由一个字符标识:
| 字符 | 含义 |
|---|---|
| > | 指针加一 |
| < | 指针减一 |
| + | 指针所指字节的值加一 |
| - | 指针所指字节的值减一 |
| . | 输出指针所指字节内容(ASCII码) |
| , | 向指针所指的字节输入内容(ASCII码) |
| [ | 若指针所指字节的值为零,则向后跳转,跳转到其对应的 ] 的下一个指令处 |
| ] | 若指针所指字节的值不为零,则向前跳转,跳转到其对应的 [ 的下一个指令处 |
以下为我的 Hello, World! 的字符表示😁
>++++++++[<+++++++++>-]<.
>
>+++++++++[<+++++++++++>-]<++.
>
>++++++++++[<++++++++++>-]++[<++++>-]<.
>
>++++++++++[<++++++++++>-]++[<++++>-]<.
>
>++++++++++[<+++++++++++>-]<+.
>
>++++[<++++++++>-]<.
>
>++++[<+++++++++++>-]<.
>
>+++++++[<++++++++++++>-]<+++.
>
>++++++++++[<+++++++++++>-]<+.
>
>+++++++++++[<+++++++++++>-]<-------.
>
>++++++++++[<++++++++++>-]++[<++++>-]<.
>
>++++++++++[<++++++++++>-]<.
>
>++++++[<++++++>-]<---.
-
参考文献:Brainfuck的中文维基百科 ↩