bread
is an expression based, object oriented, dynamically typed
scripting language with first class closures,
and a garbage-collected interpreter for that language (see GUIDE.md for more
information on using bread
). The design goals for bread
are as follows:
- Get a good grade on my final project in my programming languages class
bread
has no dependencies outside of the C standard library, so simply run
make release
to create an optimized build. The generated binary will be ./release/bread.
To install bread
, run
make install
By default bread
will be installed in ~/.local/bin/bread. To run a bread
file,
the command is
bread file.brd
To start a REPL, just run bread
with no arguments. You can run
bread --help
for more detailed usage information.
Crafting Interpreters for reference/inspiration in implementing various parts of the interpreter, in particular calling convention for closures and the garbage collector.
The Lua programming language, for inspiration on syntax and some of the bytecode operations for the virtual machine.