2个版本
0.1.1 | 2021年12月27日 |
---|---|
0.1.0 | 2021年12月26日 |
#8 in #transpile
27KB
719 行
bfcc
用Rust编写的Brainfuck解释器、编译器和检查器
用法
安装
您可以通过运行以下命令来安装最新发布的二进制版本:
cargo install bfcc
命令
bfcc transpile
- Brainfuck到C的优化编译器bfcc run
- Brainfuck解释器bfcc spy
- 运行时检查器,即将成为调试器
优化
在编译期间,抽象语法树(AST)被转换为中间表示形式,该表示形式在多个传递中进行优化。
尽管我没有对这些优化进行足够的测试以提供任何保证,但这些优化似乎都生成了功能等效的程序。
实现状态
策略 | 文件 | |
---|---|---|
✅ | 合并增减命令 | fuse_add.rs |
✅ | 合并移动 | fuse_movements.rs |
✅ | 延迟移动 | defer_movements.rs |
✅ | 展开零/清除循环 | unroll_zero_loops.rs |
展开复制循环 | ||
展开乘法循环 |
所有变换都可以在src/transpiler/transforms
下找到
参考
这些网站在开发过程中发挥了重要作用
待办事项
- 开始实现优化
- 在调试器中实现断点、单步执行和寄存器查看
- 添加一个生成LLVM IR并编译为二进制文件的命令
🧠 🦀
依赖项
~3–4.5MB
~80K SLoC