#brainfuck

app ironmind

A Brainf*ck interpreter and code execution visualizer built in Rust

34 releases

0.3.16 Mar 15, 2024
0.3.15 Mar 3, 2024
0.3.14 Feb 28, 2024
0.2.8 Dec 17, 2023
0.1.7 Nov 28, 2023

#159 in Programming languages

Download history 20/week @ 2024-09-24

1,434 downloads per month

MIT license

1.5MB
385 lines

The Iron Mind Interpreter

ironmind

A BrainF*ck interpreter and code execution visualizer written in Rust

Crates.io Crates.io Crates.io ironmind

What is BrainF*ck

Installation Instructions

Cargo

cargo install ironmind

Homebrew

First brew tap jadens-arc/tap

Then brew install ironmind

Snapcraft

snap install ironmind

Usage

Sample program:

myfile.bf
++++++++++++[>++++++<-]>.           H
>++++++++++[>++++++++++<-]>+.       e
>+++++++++[>++++++++++++<-]>..      l (printed twice)
>++++++++++[>+++++++++++<-]>+.      o
>++++[>+++++++++++<-]>.             (comma)
>++++[>++++++++<-]>.                (space)
>++++++++[>+++++++++++<-]>-.        W
>++++++++++[>+++++++++++<-]>+.      o
>++++++++++[>+++++++++++<-]>++++.   r
>+++++++++[>++++++++++++<-]>.       l
>++++++++++[>++++++++++<-]>.        d
>++++[>++++++++<-]>+.               (exclamation)
>+++[>+++<-]>+.                     (new line)

Run Program

ironmind myfile.bf

Output:

Hello, World!

Visualize Execution

ironmind -v myfile.bf

Output: visualizer

Build Instructions

System Dependencies

  • Rust
  • Cargo

Rust Dependencies (These install automatically)

  • Clap for processing command line arguments and flags
  • Cursive for TUI

Build Notes

  • Cursive is a wrapper around the ncurses linux library
    • If this library isn't present on your machine then it must be installed before ironmind can be built
    • On debian systems ncurses can be installed using sudo apt install libncurses5-dev libncursesw5-dev

Run for Debugging / Testing

git clone https://github.com/Jadens-arc/Ironmind
cd Ironmind
cargo run myfile.bf

To run automated tests run

cargo test

Tests are found in src/tests

Compiling Executable

git clone https://github.com/Jadens-arc/Ironmind
cd Ironmind
cargo build --release

The executable will be found at target/release/ironmind

Run using ./ironmind

Feel free to move it to a Bin/ directory if you want

If you do move it, you can use ironmind myfile.bf anywhere on your system

Also, I found this really cool BrainF*ck program from 2005 that outputs 99 Bottles of Beer by Andrew Paczkowski

Definitely worth checking out

Dependencies

~8MB
~134K SLoC