5 ms·
It's possible to work through Bob Nystrom's Crafting Interpreters[1] using any language you want. On GitHub just search for "crafting interpreters"[2] and add a
by tompark 5y ago
It's possible to work through Bob Nystrom's Crafting Interpreters[1] using any language you want. On GitHub just search for "crafting interpreters"[2] and add a filter for the programming language you're interested in, and you'll find at least a couple repos for the entire book. There are over a dozen complete repos in Rust. Since everyone breaks out each chapter in a separate folder, it's easy to follow along with the book, even though the book's first interpreter is written in Java and the second compiler was written in C. I did this, it's basically how I learned Rust.
[1] https://www.craftinginterpreters.com https://www.craftinginterpreters.com
[2] https://github.com/search?q=crafting+interpreters https://github.com/search?q=crafting+interpreters
- KineticLensman 5y agoConcur with this recommendation. Coincidentally, I started this project just recently, having really enjoyed completing Make a Lisp [0] a couple of years ago, and now needing something to do while I recover from a medical condition. I'm really impressed with Nystrom's writing style and Interpreter development process. My long term goal - which should keep me going for absolutely ages - is to use something like Nystrom's byte-code virtual machine as a basis for having another go at MAL. I completed MAL using C#, and am currently using Visual Studio / C# to complete Nystrom's stuff (rather than the Java / C combo that he uses). But I'm just about to restart Nystrom using a different language (again, perhaps Rust) to give myself more of a challenge. [0] https://github.com/kanaka/mal/blob/master/process/guide.md https://github.com/kanaka/mal/blob/master/process/guide.md
- kgarten 5y agoThanks. Will also try it in Rust. The web version of the book looks super nice. Anybody knows what Bob Nystrom used to build it? https://www.craftinginterpreters.com/introduction.html https://www.craftinginterpreters.com/introduction.html handcrafted?
- yutijke 5y agoIt seems to be handcrafted. https://github.com/munificent/craftinginterpreters/tree/master/tool https://github.com/munificent/craftinginterpreters/tree/mast... Custom dart code to convert and process markdown.
- steveklabnik 5y agohttps://journal.stuffwithstuff.com/2020/04/05/crafting-crafting-interpreters/ https://journal.stuffwithstuff.com/2020/04/05/crafting-craft...
- scott_s 5y agoAlso discussed on HN recently (https://news.ycombinator.com/item?id=28445174 https://news.ycombinator.com/item?id=28445174) and when published (https://news.ycombinator.com/item?id=22788738 https://news.ycombinator.com/item?id=22788738).