2个版本

0.1.1 2021年12月27日
0.1.0 2021年12月26日

#8 in #transpile

MIT许可证

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