Crafting Interpreters ... In Rust!
As you may or may not know, Bob Nystrom (not the hockey
player) is in the process of
writing an excellent introduction to programming language design and
implementation in the form of the book Crafting
Interpreters. If you haven't already, I
would highly recommend checking it out! It walks the reader through the
design and implementation of a toy object-oriented language,
lox. It does
this not once, but twice! The first implementation is a tree-walk interpreter
in Java and the second (not yet complete) implementation will be a bytecode
compiler/interpreter in C.
I've been meaning to go through the book for some time now, and, being the Rust fanboy that I am, it naturally follows that I'll be going against the grain and attempting to apply the Java instructions to Rust code. I'm going to follow along as closely as possible to the overall structure of the interpreter, but I expect that I'll have to make a number of small changes to account for language differences. Overall, it should be a fun exercise!
I'll be breaking my adventure over a number of posts which will loosely follow the structure of the book.
To Be Continued!