We try to keep our books accurate, but sometimes mistakes creep in. This page lists the errors submitted by our astute readers. If you've found a new error, please submit it.

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

Key: Typo Tech. Error Suggestion Not a problem Next edition

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

(To find out what version you have, look at the copyright page, a few pages in from the front of the book. If it says (say) 'Second Printing', then here it'll be P2.0. If there are interim PDF releases in that printing, they'll be 2.1, 2.2, and so on.)

PDF Paper Description Found in Fixed in
14
#43395: epub bug: Linked sections in the PDF read as "Section 1.2", but in the epub they read as "the section 1.2", which is really jarring when place...more...
B8.0
21-May-10
70
#48990: In the following two sentences describing Pattern 4, the word "parser" (but not parsing") should be replaced with "grammar": A more powerfu...more...
P3.0
26-Mar-12
97

#47659: public class AddNode extends AST should extend ExprNode--Terence Parr

P3.0
29-Sep-11
118

#47652: "computing expression value result types" that should be removed right before the example because the code does not have that method.--Terence Parr

P3.0
27-Sep-11
118

#52010: missing space in 'it discovers' in the first sentence of the second paragraph.--Egidijus Jankauskas

P3.0
15-Jun-13
134
#47660: "This implementation has a number of advantages over an embedded walker." should reference traditional visitor not embedded Walker or perhaps ...more...
P3.0
29-Sep-11
136

#47661: PrintVisitor.java should be IndependentPrintVisitor.java on this page and the previous. Line counts might be off by one also.--Terence Parr

P3.0
29-Sep-11
146
#47865: "Killing off a character means there should be no further references to it." May not be an accurate analogy. In a story, a character killed /...more...
P1.0
30-Oct-11
167

#47662: "pop arg scope" in the comment of the code for DefRef.g should probably be " pop method scope".--Terence Parr

P3.0
29-Sep-11
186

#47663: BuiltInType should be BuiltInTypeSymbol--Terence Parr

P3.0
29-Sep-11
187

#47583: End of line 7 should be "to sym".--Dave Thomas

P3.0
16-Sep-11
212
#47481: I think the code to promote nodes in getResultType() is wrong. It promotes ta to ta and tb to tb. I guess it should promote ta to tb and tb to...more...
P3.0
01-Sep-11
212
#50383: The type promotion in getResultType is wrong since it currently looks up using using promoteFromTo[ta][ta] and promoteFromTo[tb][tb] which for...more...
P3.0
16-Dec-12
230
#47664: "The next two chapters catalog the most common patterns for interpreting and translating programs." should be about the next two parts about n...more...
P3.0
29-Sep-11
236

#50409: "If resolves to a local variable or parameter," should probably start with "If x resolves…"--Roderick Mann

P3.0
24-Dec-12
279

#47894: "the return address *and* space for parameters"--Terence Parr

P3.0
02-Nov-11
280

#47895: "only 7 out of the 26 bytes" should be 27 bytes.--Terence Parr

P3.0
02-Nov-11
296

#47893: at the end of the second paragraph "skip tree writing" should be "skip tree rewriting"--Terence Parr

P3.0
02-Nov-11
304

#47896: Method gen(): "return Method(m.id, gen(m.bodyBlock));" should have "new" in there.--Terence Parr

P3.0
02-Nov-11