rust实战编译器

Created

2024-10-01 22:05:15

Updated

2024-10-28 09:48:33

BrainFuck八种符号
字符 含义
> 指针加一
< 指针减一
+ 指针指向的字节的值加一
- 指针指向的字节的值减一
. 输出指针指向的单元内容(ASCⅡ码)
, 输入内容到指针指向的单元(ASCⅡ码)
[ 如果指针指向的单元值为零,向后跳转到对应的]指令的次一指令处
] 如果指针指向的单元值不为零,向前跳转到对应的[指令的次一指令处
[ 和 ] 的说明
  • 就是我们知道的循环,如果执行到[,当前指针指向的地址(一个字节大小)存储的值是0,就跳出循环,也就是去执行]后面的一个指令,[]包起来的是一个循环.
  • 等执行到了],如果指针指向的地址(一个字节大小)存储的值不是0,那么重新开始以此循环, 跳到[后面的一个指令

打印Hello World!1

我们需要写的代码,上网搜一搜就有
++++++++++[>+++++++>++++++++++>+++>+<<<<-]
>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.
Important
  • 我们写的上面的代码, 经过brainfuck编译器的编译,就是对代码进行了解释编译成机器语言,实现在屏幕输出Hello World!
  • 所以现在我们就去实现编译器
Back to top