Brainfuck语言

bottas77 于 2022-03-28 发布

在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! 的字符表示😁

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