#brainfuck-compiler #x86 #编译器优化 #ELF #汇编 #WSL #包含

应用 mindblown

带电池的 Brainfuck 到 x86 ELF 编译器

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 次下载

MITGPL-3.0-only

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.

灵感

TODO

  • 使解释器接受换行符
  • 添加各种 CLI 功能,例如选择输出文件等。
  • 实现更清晰、更智能的错误处理
  • 将循环处理优化到汇编
  • 允许进行更多优化

依赖项

~3–13MB
~110K SLoC