This is a book that, if you can afford it, should be bought on general principle. There are very few books that show how recursive descent works and this one is incredibly well done.<p>The fact he gives it away for free is amazing.
This book was absolutely amazing! It is astonishingly well-written, almost actually exciting to read at times, and chock full of fascinating insights and anecdotes. Oh, and its main text was really useful as well, uncovering so many programming language behaviors I had seen many times before, but never figured out why things were as they are.<p>Truly, I can't recommend this book enough, if the topic is at all interesting to you!<p>(And follow it up with Code, by Charles Petzold, to see how a processor works, and Operating Systems, Three Easy Pieces by Arpaci-Dusseau for how OSs work)
Wow, that's a wonderful gesture from the author. I haven't read it yet, but I've seen so many great reviews on HN and other social media sites.<p>Here's some of the past discussions:<p>* <a href="https://news.ycombinator.com/item?id=27997167" rel="nofollow">https://news.ycombinator.com/item?id=27997167</a> <i>(6 months ago | 118 comments)</i><p>* <a href="https://news.ycombinator.com/item?id=22788738" rel="nofollow">https://news.ycombinator.com/item?id=22788738</a> <i>(2 years ago | 74 comments)</i><p>* <a href="https://news.ycombinator.com/item?id=13406081" rel="nofollow">https://news.ycombinator.com/item?id=13406081</a> <i>(5 years ago | 75 comments)</i>
Related. The author's love for their craft <i>oozes</i> through their work. If I'm not wrong every single illustration in the book is <i>hand-drawn</i>; like literally. Take a look: <a href="https://www.youtube.com/watch?v=iN1MsCXkPSA" rel="nofollow">https://www.youtube.com/watch?v=iN1MsCXkPSA</a>
It's a great book! I really liked how it guides step-by-step, always having something working building up to the full interpreter for Lox. I haven't yet gotten around to the 2nd part of the book (the C based interpreter/vm) because I got carried away with adding extra features to my Kotlin Lox implementation (including a JVM backend)! <a href="https://github.com/mrjameshamilton/klox" rel="nofollow">https://github.com/mrjameshamilton/klox</a>
Chelsea Troy, a Staff Engineer at Mozilla, keeps a blog where a lot of her posts work through various aspects of this book. I've really enjoyed reading them.<p><a href="https://chelseatroy.com/" rel="nofollow">https://chelseatroy.com/</a>