PLP 3e Errata
(To report a bug, send mail to
.)
As of September 2013, there has been one set of updates to the PLP Third
Edition—in October, 2011. If your copy was typeset
(physically or electronically) after that date, you can stop reading
halfway down this page. Otherwise, you’ll
need to read to the end.
Recent copies only
Main book
-
Page 52, Example 2.9, 1st line of comment production:
replace “
*
*/”
with “*
+/”
(replace Kleene star with “Kleene plus”).
All copies
Main book
CD / web site
-
Page 4-CD, 3rd line of last paragraph: add a comma after
(
. Also, in Example 2.48, 2nd line of displayed
code, replace
“if (input_token
∉ FIRST(symbol)) and (not EPS(symbol))”
with
“if not
(input_token ∈ FIRST(symbol) or (EPS(symbol) and input_token
∈ follow_set))”.
-
Page 15-CD, third-to-last line of last paragraph: replace
“(d | ε) | (d | ε) | (d |
ε)* | (d | ε) | = d*”
with
“(d | ε) | (d | ε) (d |
ε)* (d | ε) = d*”.
-
Page 16-CD, last two lines of Example 2.58: replace regular
expression with
“(
a
| b
| c
)* a
(a
| b
| c
)* a
(a
| b
| c
)* a
(a
| b
| c
)*
|
(a
| b
| c
)* b
(a
| b
| c
)* b
(a
| b
| c
)* b
(a
| b
| c
)*
|
(a
| b
| c
)* c
(a
| b
| c
)* c
(a
| b
| c
)* c
(a
| b
| c
)*”.
-
Page 32-CD, Figure 3.19, 13th line of displayed code: replace
“
A2t
” with “A2
”.
-
Page 73-CD, 1st line of 2nd paragraph: replace
“significant” with
“significand”.
-
Page 115-CD, 3rd-to-last line: replace “difficultto”
with “difficult to”.
-
Page 119-CD, 7th line of sidebar: delete “retain”.
-
Page 132-CD, Example 7.112: replace both occurrences of
“
188
” with “185
”.
-
Page 147-CD, 1st paragraph: replace “it constrains each
variable to a single variant at elaboration time” with
“it constrains each object to a single variant at creation
time”.
-
Page 149-CD, 1st line of Tombstones section: replace
“can” with “to”.
-
Page 201-CD to 202-CD, Example 8.80:
reverse direction of tests (but preserve the equality case) on lines
5, 9, 12, and 16 of displayed code—that is, replace each
“≤” with
“≥”, and each
“≥” with
“≤”.
-
Page 209-CD, line 3 of Exercise 8.37: replace
“stack” with “heap”.
-
Page 224-CD, 1st line of last paragraph: replace “As noted in
Section 9.4.3, Java implementations usually” with
“Scripting languages often”.
-
Page 231-CD, Exercise 9.23: replace
“
p.debug_print()
” with
“p->debug_print()
”.
-
Page 270-CD, Figure 12.22: bottom two arrows on left side of figure
(reply and its acknowledgment) should each be reversed (point the
opposite direction).
-
Page 273-CD, 4th line of 1st paragraph: replace
“12.3.4” with “12.4.2”.
-
Page 289-CD, 2nd paragraph, 2nd-to-last line: replace
“became” with “become”.
-
Page 334-CD, line 10: delete tilde over “c”; add space
after semicolon.
-
Page 357-CD, Figure 16.13:
in Block 1, replace “15.11” with
“16.11”;
in Block 1a, replace
“v22 := v22−4”
with
“v34 := v34−4”;
in Block 2, replace
“t13 := v19 div v17”
with
“t13 := t19 div v17”,
and replace
“v13 := t19 div t17”
with
“v13 := v19 div t17”;
in the right-hand column, replace
“t17 := v17 − 1”
with
“t17 := v17 + 1”,
and replace
“*(v36+4) := v13”
with
“*(v26−4) := v13”;
in Block 3, replace
“if v43 goto Block 4”
with
“if v43 goto Block 2”.
-
Page 361-CD, footnote: replace both occurrences of
“B” with
“A”.
-
Page 366-CD, 2nd line of displayed code in Example 16.40: replace
“n/v” with
“n−1 by v”.
Main book
-
Page 3, line 1: delete “9”.
-
Page 13: join last two lines of Figure 1.2.
-
Page 27, 4th-to-last line of main text: replace “shows shows” with
just “shows”.
-
Page 52, Example 2.9, 1st line of comment production:
replace “
*
/” with
“*
+/”
(insert “Kleene plus”).
-
Page 58, Figure 2.9: remove NFA state 11 from DFA state G.
-
Page 65, Figure 2.12, line for state 15: move “15” from
“.” column to “digit” column.
-
Page 94, Figure 2.25, basis of State 6: replace
“stmt expr
add_op term”
with
“expr expr
add_op term”.
-
Page 151: Move Check Your Understanding question 36 to the list
on page 161.
-
Page 178, 5th line of Assertions section: replace “to
to” with “to”.
-
Page 182, 1st line of displayed attribute grammar in Example 4.5:
delete “1” subscript.
-
Page 200, Figure 4.14,
“:=”
production, 3rd semantic rule: append “+ expr.errors”
to each of lines 5 and 7.
-
Page 210, Question 4.33, 8th line: replace “support”
with “suppose”.
-
Page 247, Example 6.42: replace
“
gen_new_name
” with
“label_name
”.
-
Page 257, 1st line of 2nd-to-last paragraph: replace
“iteration’s” with “iterations”.
-
Page 301, 5th-to-last line: replace “both require” with
“Pascal requires”.
-
Page 316, 1st line: replace “
"abc"
” with
“'abc'
”.
-
Page 320, last line of code in Example 7.41: replace
“
S1
” with “s1
”.
-
Page 331, 2nd line of 2nd paragraph in Dope Vectors subsection:
delete “be”.
-
Page 359, 6th-to-last line: replace “360” with
“364”.
-
Page 367, 1st line of displayed code: replace “
'mod'
”
with “`mod`
”.
-
Page 369, Example 7.95, 2nd paragraph, 4th line: delete “it”.
-
Page 393, CYU question 2, replace “RICS” with
“RISC”.
-
Page 407, 2nd-to-last line of 2nd paragraph: replace
“framethat” with “frame that”.
-
Page 434, 3rd-to-last line: replace “to reflected” with
“to be reflected”.
-
Page 436, Section 8.7.2, 8th line: replace “hander” with
“handler”.
-
Page 458, 2nd-to-last line (in last block of displayed code): replace
“
{
” with “{ }
”.
-
Page 547, footnote: replace “If fact” with “In
fact”.
-
Page 550, 5th block of displayed code: replace
“
x
” with “a
”
(three times).
-
Page 602, 6th line of Example 12.23: replace “the thread is
allowed” with “the thread that is allowed”.
-
Page 611, 3rd line after the subsection heading: delete
“are”.
-
Page 620, 4th line of Figure 12.16: replace “data” with
“bdata”.
-
Page 625, 2nd line of Figure 12.17: replace “data” with
“bdata”.
-
Page 637, Check Your Understanding question 38: delete
“those of”.
-
Page 695, 4th and 3rd-to-last lines of sidebar: insert CD glyph
before “3.4.2”. Also, insert a closing
parenthesis after the 2nd occurrence of “3.4.2”.
-
Page 719, 2nd line: replace “an textual” with “a
textual”.
-
Page 741, 8th line of Figure 14.6 (continued): replace
“reg_name” with
“reg_names”.
-
Page 766, line 5: replace “order or” with “order
of”.
-
Page 778, “Built-in Types” subsection, 3rd line after
bulleted list: replace “to to” with “to”.
-
Page 806, 4th line before Section 15.3.2: replace “is
is” with “is”.
Thanks to
Yacine Belkadi,
Björn Brandenburg,
Bob Cochran,
Daniel Crisman,
Marcelino Debajo,
Chen Ding,
Peter Drake,
Michael Edgar,
Michael Glass,
Sérgio Gomes,
Allan Gottlieb,
Hossein Hadavi,
Chris Hart,
Thomas Helmuth,
Wayne Heym,
Scott Hoge,
Max Li,
Kelly Jones,
Ahmed Khademzadeh,
Eleazar Enrique Leal,
Kyle Liddell,
Annie Liu,
Hao Luo,
Dirk Müller,
Holger Peine,
Andreas Priesnitz,
Mikhail Prokharau,
Harsh Raju,
and Jingguo Yao
for their help in catching these mistakes.
Back to the book home page