Random writing on computing, baking, life. Find me on Mastodon too.

Planning out my Smalltalk implementation

I am about 80% of the way through reading Crafting Interpreters by Robert Nystrom. This feels like a logical place to start planning my Smalltalk implementation.

As this is the first time I’ve written my own interpreter or compiler, I’m going to follow the framework setup in the book. The first implementation will be a tree-walk interpreter, followed by a bytecode compiler and virtual machine. Eventually I’d love to add just-in-time (JIT) compilation, but I’m not in a hurry for that.

My eventual goal is to have the virtual machine running on a bare metal RISC-V or ARM single board computer, with a minimal operating system layer underneath it.

I’ve made a few decisions already:

Expect more posts as this develops!


1  I almost said “prove” here, but that means something very different in the context of Ada! It would be nice to mathematically prove the correctness of my interpreter, but I'm under no illusions that I'll be able to do that.