8 个不稳定版本 (3 个重大更改)
0.4.1 | 2022年9月29日 |
---|---|
0.4.0 | 2022年9月28日 |
0.3.2 | 2022年9月16日 |
0.2.1 | 2022年9月9日 |
0.1.0 | 2022年9月8日 |
#524 在 编程语言
每月 28 次下载
25KB
487 行
mindblown
带电池的 Brainfuck 到 x86 ELF 编译器,用 Rust 编写,适用于 Linux 和 WSL 下的 Windows。代码生成从 brainf**k 直接到 x86 Intel 汇编作为 IR。大部分优化工作在解析时完成,所以集成解释器也可以从中受益。
目前处于非常早期阶段。敬请期待更多功能和优化,如TODO中所述。
注意:
samples/patterns.py
仅用于检测经典 brainf**k 程序中的常见循环模式,以便进行当前和未来的重构。
目录
先决条件
入门
获取最新二进制发布版本并安装到您的机器上
# Get the latest cargo release
$ cargo install mindblown
# Build from source
$ git clone https://github.com/Noxtal/mindblown.git
$ cd mindblown
$ cargo build --release
使用
mindblown 0.4.0
Brainfuck to x86 ELF compiler with batteries included.
USAGE:
mindblown [SUBCOMMAND]
OPTIONS:
-h, --help Print help information
-V, --version Print version information
SUBCOMMANDS:
compile Compiles a Brainfuck file.
help Print this message or the help of the given subcommand(s)
如果没有提供子命令,则
mindblown
将默认为集成解释器,它还使用 snailquote 语法进行输入。请参阅他们的 文档 了解更多信息。
编译 Brainfuck 程序
mindblown-compile
Compiles a Brainfuck file.
USAGE:
mindblown compile [OPTIONS] <FILE>
ARGS:
<FILE> The Brainfuck file to compile.
OPTIONS:
-h, --help Print help information
-o, --output <OUTPUT> The output file.
-r, --run Run the compiled executable after compiling.
灵感
- 有关 x86 汇编代码生成的更多信息,请参阅 https://github.com/pretzelhammer/rust-blog/blob/master/posts/too-many-brainfuck-compilers.md#intro-to-x86
- 请参阅 https://github.com/pretzelhammer/brainfuck_compilers/blob/master/src/x86_64/compiler.rs 以获取 Rust 中 x86_64 汇编代码生成的示例
- 有关优化 brainf**k 的更多信息,请参阅 http://calmerthanyouare.org/2015/01/07/optimizing-brainfuck.html
- 有关
samples
文件夹中的大多数程序,请参阅 http://brainfuck.org
TODO
- 使解释器接受换行符
- 添加各种 CLI 功能,例如选择输出文件等。
- 实现更清晰、更智能的错误处理
- 将循环处理优化到汇编
- 允许进行更多优化
依赖项
~3–13MB
~110K SLoC