Crafting Interpreters

craftinginterpreters.com

Visit Website

Robert Nystrom's free book walking you through building two complete interpreters from scratch — a tree-walk interpreter in Java, then a bytecode VM in C — for a full programming language called Lox.

Why it is useful

The best practical resource for understanding how programming languages actually work. You build two real implementations from scratch: a tree-walk interpreter (good for understanding the concepts) and then a bytecode virtual machine (good for understanding performance). The writing is clear and entertaining, the projects are completable, and finishing it gives you a genuine understanding of interpreters that years of using languages doesn't.