编码尝试:使用Brainfuck实现Brainfuck解释器

2026-04-11 11:210阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐
问题描述:

最近我们朋友间流传起一个神秘的比赛(赛题如下):
image1129×1215 176 KB
这么好玩的比赛,必须参加啊

而且,必须拉坨

于是,决定选择解释器赛道。不是不会写编译器,是不会用Brainfuck写编译器…这玩意工作量疑似有点不是人了
但是,使用Brainfuck写个解释器我还是有把握的。

所以,开干!
接下来这里就慢慢更新>w<

第一部分:技术路线

首先,全部手写,进行到底!

对于路线,我一开始就很清晰:选我极其擅长和熟悉的C系语言做跳板。
然后在C和C++中,毫不犹豫地选了C。

总体分成下面几步:

  • 挑选语法,设计一个C的子集。
  • 使用这个子集完成BF解释器逻辑的编写。
  • 编写一个C子集 → BF的编译器。
  • 编译后手动优化目标BF代码。

这个C子集姑且就叫它bfrtc吧,BrainFuck RunTime C
bfrtc → bf的编译器就叫它bfrtcc。

阅读全文
标签:软件开发
问题描述:

最近我们朋友间流传起一个神秘的比赛(赛题如下):
image1129×1215 176 KB
这么好玩的比赛,必须参加啊

而且,必须拉坨

于是,决定选择解释器赛道。不是不会写编译器,是不会用Brainfuck写编译器…这玩意工作量疑似有点不是人了
但是,使用Brainfuck写个解释器我还是有把握的。

所以,开干!
接下来这里就慢慢更新>w<

第一部分:技术路线

首先,全部手写,进行到底!

对于路线,我一开始就很清晰:选我极其擅长和熟悉的C系语言做跳板。
然后在C和C++中,毫不犹豫地选了C。

总体分成下面几步:

  • 挑选语法,设计一个C的子集。
  • 使用这个子集完成BF解释器逻辑的编写。
  • 编写一个C子集 → BF的编译器。
  • 编译后手动优化目标BF代码。

这个C子集姑且就叫它bfrtc吧,BrainFuck RunTime C
bfrtc → bf的编译器就叫它bfrtcc。

阅读全文
标签:软件开发