*4/12/96 ERRATA FOR THE 3RD PRINTING (June, 1995) Programming Languages Principles and Practice by Kenneth C. Louden Page 82, Figure 4-6b: In the syntax diagram for a program-module, there should be a path around module-priority, from the rectangle labeled "identifier" to the circle labeled with a semicolon. Page 146, Exercise 10, line 3: "blocks of function p, procedure q, and the main program" should appear as "blocks of function p, procedure print, and procedure q" Page 270, paragraph 1: "w := z + z" should appear as "w := z + z;" Page 270, middle of page: "w := ComplexNumbers"+"(z,z);" should appear as "w := ComplexNumbers."+"(z,z);" Page 293, Exercise 11, last line: "8.8" should appear as "8.1" Page 323, code after 1st paragraph: "class rectangle { private: ..." should appear as "class rectangle { protected: ..." Page 376, bottom of page: "(cond ((null? B) ())" should appear as "(cond ((null? B) '())" Page 378, middle of page: "(if (null? L) ()" should appear as "(if (null? L) '()" Page 396, last paragraph: "An example of a functional language with fully lazy evaluation is" should appear as "An example of a functional language with lazy evaluation is" Page 419, Exercise 45(d): "Write out an implementation of your lambda expressions in (b) as" should appear as "Write out an implementation of your lambda expressions in (c) as" Page 471, paragraph 1: Rule (18) should appear as: => Env1 ------------------------- => Page 471, paragraph 1: Rule (19) should appear as: L => Page 480, Figure 12-4 (continued): In the definition of the E semantic function, the following line was omitted and should be inserted above the last equation: "E[[I]](Env) = Env(I)" Page 486, paragraph 3: "wp(S1;S2;Q) = wp(S1,wp(S2,Q))" should appear as "wp(L1;L2,Q) = wp(L1,wp(L2,Q))" Also, the reference to S1 and S2 later in the paragraph should be changed to L1 and L2. Page 488, 1st paragraph: "H1(while B do L od, Q) = E>0 and wp(L,Q and E<=0) = E>0 and wp(S, H0(while E do L od, Q))" should appear as "H1(while E do L od, Q) = E>0 and wp(L,Q and E<=0) = E>0 and wp(L, H0(while E do L od, Q))" Page 565, top of page: "(Some relaxation of the "same-length" requirement of Pascal are provided.)" should appear as "(Some relaxation of the "same-length" requirement of Pascal is provided.)" Page 611, answer to 35: This is actually an answer to both Exercise 35 and Exercise 36. Page 611, answer to 42: "A lambda expression for the twice functions is ..." should appear as "A lambda expression for the twice function is ..." Page 617, first line: "P[[P]](a) = ..." should appear as "P[[L]](a) = ..."