====== Errata (Elements of Compiler Design) ====== * Ordered by appearance in the text. * Last updated on October 1, 2012. * Send additional errors and comments to: [[meduna@fit.vutbr.cz?Subject=EOCD: Error report|meduna@fit.vutbr.cz]] ===== The List of Errors ===== * Page 3, Section //Relations and Translations//, Line 9, 10, and 11 * There are several occurrences of switched closing brackets: '')}'' instead of ''})'' * Reported 2012-10-08 by Jan Remeš of the Brno University of Technology ---- * Page 3, Section //Relations and Translations//, Line 11 * Change ''= 1'' to ''≥ 1'' * Reported 2012-10-08 by Jan Remeš of the Brno University of Technology ---- * Page 22, Line 9 * Change ''( ( a )* ( b.( b )*) )'' to ''( ( a* )( b ( b* ) ) )'' * Reported 2009-05-19 by Zbyněk Křivka of the Brno University of Technology. ---- * Page 22, Figure 2.1, the last row, Column **Regular Expression** * Change ''digits(ε|.digits)(ε|E(ε|+|-)digits)'' to ''digits.(ε|digits)'' * Comment: The regular expression for real numbers should be consistent with Case Study 3/35 and 4/35. Therefore, FUN real numbers do not support exponents. According to this change, the following paragraph is inconsistent with FUN language as it contains examples of real numbers with exponents. * Reported 2011-01-12 by Stefan Kombrink. ---- * Page 23, Definition 2.2 * Change ''where w in Δ*,'' to ''where w in Δ* and f in F,'' * Reported 2011-01-12 by Stefan Kombrink. ---- * Page 23, Line -16 and -17 (the paragraph after Convention 2.3) * Change ''qay to qy'' to ''qay to py'' * Reported 2012-09-24 by Karel Beneš of the Brno University of Technology ---- * Page 34, Figure 2.14, second row, Column **Example** * Change ''i{'' to ''l{'' * Reported 2011-01-12 by Stefan Kombrink. ---- * Page 47, Line -11 * Change ''( ( a )( ( ( b )|( c ) ) )* )'' to ''( a( (b|c)* ) )'' * Reported 2009-05-18 by Alexander Meduna of the Brno University of Technology. ---- * Page 88, Example 3.4 * Change ''Γ = {S, C},'' to ''Γ = {S, C, a},'' * Reported 2011-01-12 by Stefan Kombrink. ---- * Page 97, Case Study 9/35 * Eliminate rule T -> F from the non-left-recursive grammar. * Reported 2010-04-20 by Alexander Meduna of the Brno University of Technology. ---- * Page 114, //Gist// of Algorithm 3.34 * Remove the condition ''|x_0 x_1 ... x_n| ≠ ε'' * After ''1 ≤ i ≤ n, '' insert new condition ''X_1 X_2 ... X_n ≠ ε, '' * Reported 2012-10-01 by Zbyněk Křivka of the Brno University of Technology. ---- * Page 114, Algorithm 3.34 * Replace the condition ''|x_0 x_1 ... x_n| ≥ 1'' with ''|X_1 X_2 ... X_n| ≥ 1'' * Reported 2012-10-01 by Zbyněk Křivka of the Brno University of Technology. ---- * Page 117, Example 3.12 * Remove the second sentence in Example 3.12 on page 117. * Reported 2009-09-23 by Alexander Meduna of the Brno University of Technology. ---- * Page 146, Figure 4.2 * Remove the row corresponding to T -> F. * Reported 2010-04-24 by Alexander Meduna of the Brno University of Technology. ---- * Page 165, Figure 5.6, the last row, Column **Table Entry** * The cell should contain **smiley face**. * Reported 2008-02-28 by Zbyněk Křivka of the Brno University of Technology. ---- {{ :lectures:books:eocd_fig5_7_mistake.png?direct&600|}} * Page 166, Figure 5.7, two cells are incorrect * Both cells on rows //i// and //)// in column //¬// should contain **sad face** (see the picture). * Reported 2023-12-04 by Dalibor Kříčka of the Brno University of Technology. ---- * Page 170, Figure 5.11, on the position θ_10∧ in LR table * Replace θ_7 with θ_8. * Reported 2011-11-21 by Martin Čermák of the Brno University of Technology. ---- * Page 179, Figure 5.18, the row with label θ_9, the last column (ENDMARKER) * The cell should contain **circled 4**. * Reported 2011-09-19 by Zbyněk Křivka of the Brno University of Technology. ---- * Page 179, Figure 5.18, on the position θ_10∧ in LR table * Replace θ_7 with θ_8. * Reported 2011-11-21 by Martin Čermák of the Brno University of Technology. ---- * Page 179, the last line (recovery for circled 3) * Change ''insert Λθ_5 onto the pushdown'' to ''insert V into the input'' * Reported 2011-09-19 by Zbyněk Křivka of the Brno University of Technology. ---- * Page 180, Line 2 (recovery for circled 4) * Change ''insert )θ_6 onto the pushdown'' to ''insert )θ_12 onto the pushdown'' * Reported 2011-09-19 by Zbyněk Křivka of the Brno University of Technology. ---- * Page 180, Figure 5.19, the fourth row, Column **Table Entries** * Change ''goto[θ_1, E] = θ_3'' to ''goto[θ_1, E] = θ_2'' * Reported 2013-02-03 by Zbyněk Křivka of the Brno University of Technology. ============ Thanks to the readers who contributed the corrections.