Our great sponsors
-
uni
A mono-repo containing code I've written to educate myself. est. 2021. (public) (by thundergolfer)
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
I have been reading it and implementing the interpreter in Ada to learn about both interpreters and Ada better. It is a wonderful way to learn, since I constantly have to go beyond the surface level. What is the purpose of this and that in the interpreter? How do I model/implement this well in Ada.
If you are curious about language, I can only recommend trying to learn a new one while following this book.
I'm working through this right now and it's awesome. I've completed the Java interpreter and I'm halfway through the C bytecode stack-based interpreter[1]. I'd estimate I've spent around 30-40 hours with the book.
Throughout I've used both the website and the dead-tree version of the book. The website is great with 2 monitors, but you might be too tempted to copy-paste the code.
The one thing the book doesn't mandate is the use of the Lox test suite, but I think it should be incorporated into the book. It's easier to hack on your implementation when there's a test suite to validate that everything still works as it should at Chapter X.
1. https://github.com/thundergolfer/uni/tree/main/books/craftin...
I am not sure it really is literate programming, in the traditional sense. In literate programming source code and text are intertwined while Crafting Interpreters keeps code aligned to text but they are distinct https://github.com/munificent/craftinginterpreters