A fast Brainfuck interpreter written in Rust. It reads source code, translates it into optimized opcodes, and executes it on a virtual machine.
- Opcode Folding: Consecutive
+/-and</>are collapsed intoAddN(n)andShiftN(n)(zero-net runs are removed). - Direct Jumps: Loop brackets are precomputed into
JumpIfZeroandJumpIfNotZerowith absolute targets, eliminating bracket scanning during execution.
git clone https://github.com/jeffreywangcf/brainfudge-interpreter.git
cd brainfudge-interpreter
cargo build --releaseThere are two ways to use the interpreter:
./target/release/brainfudge-interpreter <path_to_file>Example:
> ./target/release/brainfudge-interpreter tests/fixtures/bf/hello_world.b
Hello World!If no file path is provided, the interpreter starts in REPL mode.
./target/release/brainfudge-interpreterExample:
> ./target/release/brainfudge-interpreter
Interactive Brainfuck REPL
Type Brainfuck code and press Enter to run.
Type `exit()` to quit.
bf> ++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
Hello World!
bf> exit()
>