A collection of command line tools for executing, analyzing, and visualizing Befunge code.
Befunge 93 is an esoteric programming language where
- programs are 2-dimensional grids of
u8cells, not sequences of lines; - the program counter is 2-dimensional and can move up, down, left, or right!
- instructions are ASCII characters and occupy a single cell in the grid;
- instructions pop/push from a stack of
i32cells; - programs can modify themselves to store data and change program flow.
Befunge Tools currently targets Befunge 93 except that programs may be larger than 80x25. In the future, this may be updated to a new dialect with a Befunge 93 compatibility mode.
Befunge Tools is a collection of command line tools for executing, analyzing, and visualizing Befunge code.
- the
runcommand which is a no-frills Befunge interpreter.- (Planned) support use in shebang interpreter directive
- the
debugcommand which launches an interactive TUI environment.- command tab with debugger run/step/pause functionality
- console tab with interactive virtual terminal
- (Planned) timeline tab with time-travel debugging
- program visualization with path-aware highlighting
- stack visualization sidebar
- breakpoint support
Execute
bft run ./path/to/file.b93in your terminal.
Runs the program and
- reads input from standard input,
- writes output to standard output,
- logs interpreter errors to standard error,
- exits with status code 0 unless the interpreter encounters an error.
Execute
bft debug ./path/to/file.b93 2> log.txtin your terminal.
(Logging will probably become configurable or automatically placed in files in the future, but for now it is printed to standard error by default for development purposes and redirecting it is recommended/expected)
Launches the interactive debugger Terminal User Interface (TUI) with the specified program loaded in.
The interactive debugger UI. Click it to see a demo at asciinema.org!
The debugger automatically saves logs to ~/.bft/logs. The log level is controlled by the --log-level argument.