small medium large xlarge

The latest version of the book is P5.0, released over 5 years ago. If you've bought a PDF of the book and would like to update it to this version (for free), visit your home page.

By default this page displays the errata for the latest version of the book. If you have a previous version, select it here:

If you've found a new error, please submit it.

  • Typo
  • Tech. error
  • Suggestion
  • Maybe next edition
  • Not a problem
  • Reported in: P5.0 (24-Jul-17)
PDF page: 24ff
EPUB version: Please include higher resolution bitmaps in the epub version. Some readers are better at scaling images than others (some don't appear t...more...
  • Reported in: P5.0 (25-Jan-15)
PDF page: 55
Paper page: 39
There is no a call of `consume` in the constructor of `ListParser`. Thus `lookahead` remains uninitialized and the program crashes with `NullPointerEx...more...
  • Reported in: P5.0 (25-Jan-15)
PDF page: 55
Paper page: 40
You can forget about the previous erratum. It is not mentioned that the constructor of `Parser` class should call `consume`. It is worth adding an imp...more...
  • Reported in: P5.0 (08-Feb-17)
Paper page: 59
In the consume method for the BacktrackingParser: public void consume() { p++; // have we hit end of buffer when not backtracking? i...more...
  • Reported in: P5.0 (05-Feb-16)
PDF page: 194
Paper page: 197
semantics/promote/ the printed book and pdf do show wrong code. public Type getResultType(Type[][] typeTable, CymbolAST a, Cymbol...more...
  • Reported in: P5.0 (14-Feb-16)
Paper page: 233
On pattern 25, Tree-Based Interpreter I noticed something odd in the Pie.g grammar definition. Note this error is in the source code that accompanies...more...