<p>
<span style="background-color: transparent; color: rgb(0, 0, 0);">
Crafting Interpreter</span>
</p>
<p>
<br>
</p>
<p>
<span style="background-color: transparent; color: rgb(0, 0, 0);">
Hello, this is iota speaking.</span>
</p>
<p>
<br>
</p>
<p>
<span style="background-color: transparent; color: rgb(0, 0, 0);">
Today I would like to talk about the book "Crafting Interpreters" by Robert Nystrom.&nbsp; I have a passion for interpreters and compilers for a long time, and always like to write one.&nbsp; But I never succeed.&nbsp; I read a lot of books about interpreters and compilers but never able to finish it.</span>
</p>
<p>
<br>
</p>
<p>
<span style="background-color: transparent; color: rgb(0, 0, 0);">
Crafting Interpreters is the first book I read cover to cover, and understand it, and I am able to follow through all the coding and build an interpreter as well as a compiler.&nbsp; It is amazing!</span>
</p>
<p>
<br>
</p>
<p>
<span style="background-color: transparent; color: rgb(0, 0, 0);">
The first half of the book is to build a tree-walking interpreter in Java.&nbsp; The 2nd half of the book is to build a bytecode compiler in C.&nbsp; Both of them are for a programming language the author called lox. L-O-X.</span>
</p>
<p>
<br>
</p>
<p>
<span style="background-color: transparent; color: rgb(0, 0, 0);">
The book is smart because it is based on generic Java and C code, and does not specify any IDE or make file to use.&nbsp; You will have to figure out that yourself.&nbsp; That may sound like a hurdle but in fact it is a blessing.&nbsp; That makes the code in the book very portable.</span>
</p>
<p>
<br>
</p>
<p>
<span style="background-color: transparent; color: rgb(0, 0, 0);">
The author has a way to explain compiler concepts in an interesting way.&nbsp; The bytecode compiler in the 2nd half of the book implements the following features: virtual machine, closure, class and methods, garbage collector, etc.</span>
</p>
<p>
<br>
</p>
<p>
<span style="background-color: transparent; color: rgb(0, 0, 0);">
The book cover is already very revealing.&nbsp; It is basically a high-level view of the different passes and types of code generation.</span>
</p>
<p>
<br>
</p>
<p>
<span style="background-color: transparent; color: rgb(0, 0, 0);">
You can buy the book in different places, both physical copy or ebook.&nbsp; However, the book is also available for free at <a href="https://craftinginterpreters.com/">craftinginterpreters.com</a>.</span>
</p>
<p>
<br>
</p>
<p>
<span style="background-color: transparent; color: rgb(0, 0, 0);">
I would say this book is a labour of love by the author.&nbsp; Highly recommended.&nbsp;</span>
</p>
<p>
<br>
</p>
<p>
<span style="background-color: transparent; color: rgb(0, 0, 0);">
iota signing off</span>
</p>
<p>
<br>
</p>
<p>
<br>
</p>
<p>
<br>
</p>
