强大的 Brainfuck 语言工具链项目,提供一站式的 BF 程序解释、转译和编译功能。
本工具链包含强大的优化前端和多后端目标支持,不仅可以将 Brainfuck 直接解释执行,也可以将其翻译成 C 语言代码,甚至可以直接编译为 x86-64 汇编代码或独立的 Windows PE 可执行文件。
本项目分为三个核心子项目模块:
| 工具 | 功能说明 |
|---|---|
bf-interpreter |
解释器:直接在虚拟机中解释执行 .bf 源码程序。 |
bf-transpiler |
转译器:将 BF 源码转译为等价的优化后的 C 语言源码。 |
bf-compiler |
编译器:将 BF 源码编译生成 x86-64 汇编代码 (支持 NASM/MASM/AT&T) 或直接生成独立的 Windows PE 可执行文件 (.exe)。 |
编译前端内置了 IR (中间表示) 生成器和优化器,可自动执行以下优化策略,大幅提升执行效率:
- 连续指令合并:将多个相同的简单指令折叠。例如
>>>优化为MovePtr(3),+++优化为AddVal(3)。 - 清零循环识别:将常见的清零习语
[-]/[+]直接映射为单一的SetZero操作指令。 - 死代码消除:分析并移除程序开头(数据指针为0且指向内存为0时)绝对不可达的循环。
BFCompiler/
├── common/ # 共享前端架构(词法分析器、解析器、中间代码IR、优化器)
├── interpreter/ # BF 解释器模块
├── transpiler/ # BF -> C 转译器模块
├── compiler/ # BF -> ASM / PE 可执行文件 编译器模块
├── docs/ # 详细的设计与架构文档
└── tests/ # 测试使用的 Brainfuck 程序示例
项目使用 CMake 作为主要的构建系统,同时为了兼容性也保留了 Makefile。推荐使用 CMake。
- C++17 兼容的编译器 (如 MinGW-w64 GCC / Clang / MSVC)
- CMake 3.16 及以上版本
在 Windows (MinGW) 环境下:
# 1. 配置 CMake 生成 Makefile
cmake -B build -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release
# 2. 编译项目
cmake --build buildmingw32-make all构建完成后,所有的可执行工具文件 (bf-interpreter.exe, bf-transpiler.exe, bf-compiler.exe) 将位于 build/ 或 cmake-build/ 目录下。
直接运行你的 Brainfuck 脚本:
bf-interpreter hello.bf将 BF 脚本转换为 C 源码:
bf-transpiler hello.bf # 默认输出为 hello.c
bf-transpiler hello.bf -o out.c # 手动指定输出文件名称1. 直接生成 Windows PE 可执行文件 (.exe):
内部自带轻量级 PE 生成器,不依赖任何外部汇编器或链接器!
bf-compiler hello.bf # 默认输出为 hello.exe
bf-compiler hello.bf -o myapp.exe2. 仅生成汇编源码:
供学习研究或与其他项目链接:
bf-compiler hello.bf --asm # 默认使用 NASM 格式
bf-compiler hello.bf --asm --format=nasm # 生成 NASM 格式汇编
bf-compiler hello.bf --asm --format=masm # 生成 MASM 格式汇编
bf-compiler hello.bf --asm --format=att # 生成 AT&T/GAS 格式汇编- 作者: 3aKHP
- 联系邮箱: 2971755027@qq.com
本项目采用 MIT License 开源协议。