Skip to content

Misakait/brainfuck

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Brainfuck 解释器与 JIT 编译器

本项目是用 Rust 语言实现的 Brainfuck 解释器和 JIT 编译器,支持 Brainfuck 代码的解析、执行与优化。适合学习解释器、编译器原理及 Rust 实践。

目录结构

.
├── Cargo.toml                # Rust 项目配置文件
├── src/                      # 源码目录
│   ├── main.rs               # 程序入口
│   ├── Interpreter.rs        # 解释器实现
│   ├── jit_compiler.rs       # JIT 编译器实现
│   ├── IR.rs                 # 中间表示(IR)相关
│   └── opcode.rs             # 操作码定义
├── res/                      # Brainfuck 示例程序
│   ├── HelloWorld.bf
│   ├── a.bf
│   ├── io.bf
│   └── mandelbrot.bf
└── target/                   # 编译输出目录

功能特性

  • 支持 Brainfuck 语言的完整指令集
  • 解释执行与 JIT 编译两种运行模式
  • 丰富的示例程序
  • 代码结构清晰,便于扩展

快速开始

1. 环境准备

2. 编译项目

cargo build --release

3. 运行 Brainfuck 程序

以解释器模式运行:

cargo run --release -- -ir res/HelloWorld.bf

如果是下载已经编译的二进制文件,可以直接运行:

./brainfuck.exe -ir ./yourcode.bf

如需运行其他示例,将路径替换为对应 .bf 文件。

4. JIT 编译模式

如项目支持 JIT,可通过命令行参数切换:

cargo run --release -- --jit res/HelloWorld.bf

如果是下载已经编译的二进制文件,可以直接运行:

./brainfuck.exe -jit ./yourcode.bf

(具体参数请参考 main.rs 或命令行帮助)

示例程序

  • HelloWorld.bf:输出 Hello, World!
  • mandelbrot.bf:Mandelbrot 集合渲染
  • io.bf:输入输出演示

主要文件说明

  • src/Interpreter.rs:Brainfuck 解释器核心逻辑
  • src/jit_compiler.rs:JIT 编译器实现
  • src/IR.rs:中间表示定义与优化
  • src/opcode.rs:操作码与指令集定义
  • src/main.rs:命令行参数解析与程序入口

贡献指南

欢迎提交 issue 和 PR,改进代码或补充文档。

  1. Fork 本仓库
  2. 新建分支进行开发
  3. 提交 PR 并描述你的更改

许可证

本项目采用 MIT 许可证,详见 LICENSE。

About

Brainfuck 解释器与 JIT 编译器

Resources

Stars

Watchers

Forks

Packages

No packages published