Errata für die deutsche Ausgabe des Drachenbuchs


Seite Stelle Errata
33 Absatz 3, Zeile 3 Speicherort statt Speicherot
39 Abschnitt 2, Zeile 6 Klasse anstatt Klase (gefunden von Josef Joller)
52 Abbildung 2.4 (a) < anstatt > (gefunden von Julian Grund); auch im englischen Original
56 Zeile 5 von unten params anstatt para ms (gefunden von Josef Joller)
68 vorletzte Zeile "Bottom" anstelle von "Buttom" (gefunden von Oliver Röwer)
70 Zeilen 6-7 "expr.t den Wert von term.t" anstelle von "term.t den Wert von expr.t" (gefunden von Oliver Röwer)
70 Abb 2.10, Zeile 2 expr -> expr1 - term anstelle expr -> expr1 - term- (gefunden von Michael Schenke)
70 4. Zeile unter Abb 2.10 expr.t = expr1.t || term.t || '+' und nicht expr1.t = ... (gefunden von Michael Schenke)
71 Beispiel 2.11 bei (2.5) Bei PRODUKTION steht '-' statt "=" (gefunden von Nikolai Kosjar)
75 Abbildung expr -> -term. Das - ist zu viel. (gefunden von Nikolai Kosjar)
90 Quellcode match('+'0); Die 0 ist zu viel. (gefunden von Nikolai Kosjar)
151 Beispiel 3.7, Zeile 8 "digits -> digit+" anstatt "digits -> digit"
154 Abb. 3.8, Zeile 4 für "s" "Der String s als Folge von Literalen" anstatt "Das Zeichen s als Literal" (gefunden von Marc Fontaine)
157 Abb. 3.11, Zeile 5 digit" anstatt "letter j digit"
185 Abb. 3.31, Unterschrift "NFA" anstatt "NFS"
187 Zeile 2 "Dtran[A,b] = epsilon-closure(move(A,b))" anstatt "Dtran[A,b] = epsilon-closure(move(A,a))" (gefunden von Dennis Gronewold)
194 Zeile 6 "akzeptierenden" anstatt "akzeptieren" (gefunden von Oualid Marzougui)
219 2. Absatz, Zeile 5 das "k" von "sk" soll als Index geschrieben werden (gefunden von Oualid Marzougui)
242 2. Absatz statt "einfuegt" "eingefuegt" (gefunden von Nikolai Kosjar)
247 1. Absatz, 2. Zeile "* und +" statt "* und *" (gefunden von Nikolai Kosjar)
267 1. Absatz, 3. Zeile ganz rechts Es muss von A, nicht von alpha abgeleitet werden: A =>* c \gamma, (gefunden von Nikolai Kosjar)
267 ganz unten, 2. Punkt zur Erklärung von FIRST: FIRST(Yj) anstatt FIrST(Y1) in "wenn Epsilon für alle j = 1,2,...,k in FIRST(Y1) ist" (gefunden von Thomas Höfer)
269 Punkt 6. "FOLLOW(F)=" anstelle von "FOLLOW(F)=FOLLOW(F')=". (gefunden von Simon Weber)
270 Abbildungsunterschrift Grammatik (4.15) auf Seite 263 statt (4.28). (gefunden von Nikolai Kosjar)
271 Algorithmus 4.17 Punkt 2 wurde falsch übersetzt. Es sollte heissen: Wenn \epsilon in FIRST(\alpha) ist,dann fügen Sie für alle Terminale b in FOLLOW(A) die Produktion A -> \alpha in M[A,b] hinein. Wenn außerdem $ in FOLLOW(A) dann fügen Sie auch A -> \alpha in M[A,$] hinein. (gefunden von Nikolai Kosjar)
273 Abb 4.18, linke Spalte S' statt E' dritte Spalte: E->b statt E'->b (gefunden von Michael Schenke)
288 Beispiel 4.24 "stmt ->" stat "stmt to" (gefunden von Nikolai Kosjar)
294 Abb 4.31 Im Zustand I9: T -> T.*F statt E->T.*F (gefunden von Michael Schenke)
297 Abb 4.33, Zeile 2 S' statt S0
304 Abb 4.38, Zeile 4 (4) statt 4()
306 In der Mitte Abbildung 4.3.7 anstatt Abbildung 4.3.1 (gefunden von Alexander Nobbe); auch im englischen Original
337 Abbildung 4.50 Bei I4 fehlt S -> iS. (gefunden von Alexander Nobbe); auch im englischen Original
453 Abbildung 6.15 es fehlt {T.type=C.type; T.width=C.width;} als Aktion für T->C (2.Zeile); auch im englischen Original
453 Abbildung 6.15 Die letzte Aktion muss heissen: {C.type = array(num.value, C1.type); C.width=num.value x C1.width;} (gefunden von Thomas Kranz)
615 Referenz 6 Es sollte heissen "On-the-fly garbage collection" (gefunden von Josef Joller).
652 letzte Zeile in Abbildung 8.12 Es sollte heissen "DAG für den Grundblock in Beispiel 8.10" und nicht "DAG für den Grundblock in Abbildung 8.10" (gefunden von Josef Joller).
665 Zeile 5 Anstatt Maschinenbefehle erteilt sollte es heißen Maschinenbefehle erzeugt.
682 Zeile -9 Anstatt Aktion erteilt, sollte es heißen Aktion erzeugt werden.
743 Beispiel 9.13 def_{B2} sollte leer sein und nicht {i,j}, da {i,j} vor der Definition verwendet werden. (Fehler ist auch im englischen Original vorhanden; http://infolab.stanford.edu/~ullman/dragon/errata.html)
754 Zeile 12 Sollte heissen: Top /\ x = x für alle x in V
754 Zeile 15 Sollte heissen: Bot /\ x = Bot für alle x in V
760 Zeile -3 Gleichung 9.5: F1 sollte F sein.
772 Zeile -9 "wenn entweder m(y) oder m(z) nicht konstant ist" Könnte man etwas klarer formulieren: "wenn entweder m(y) oder m(z) gleich NAC sind"
1205 Mitte "z='\n'" Diese Zeile muss gestrichen werden. SableCC erkennt dies nicht als "Newline"!
1206 SableCC Quellcode in unteren Hälfte 10 | 13 | 9)"