To get the most out of this book
In order to understand this book, you should be an intermediate-or-better programmer in Java or a similar language; a C programmer who knows an object-oriented language will be fine.
Instructions for installing and using the tools are spread out a bit to reduce the startup effort, appearing in Chapter 3, Scanning Source Code, to Chapter 5, Syntax Trees. If you are technically gifted, you may be able to get all these tools to run on macOS, but it was not used or tested during the writing of this book.
Note
If you are using the digital version of this book, we advise you to type the code yourself or access the code from the book's GitHub repository (a link is available in the next section). Doing so will help you avoid any potential errors related to the copying and pasting of code.