Zum Inhalt springen Zur Suche springen

Errata für die deutsche Ausgabe des Drachenbuchs

SeiteStelleErrata
33Absatz 3, Zeile 3Speicherort statt Speicherot
39Abschnitt 2, Zeile 6Klasse anstatt Klase (gefunden von Josef Joller)
52Abbildung 2.4 (a)< anstatt > (gefunden von Julian Grund); auch im englischen Original
56Zeile 5 von untenparams anstatt para ms (gefunden von Josef Joller)
68vorletzte Zeile"Bottom" anstelle von "Buttom" (gefunden von Oliver Röwer)
70Zeilen 6-7"expr.t den Wert von term.t" anstelle von "term.t den Wert von expr.t" (gefunden von Oliver Röwer)
70Abb 2.10, Zeile 2expr -> expr1 - term anstelle expr -> expr1 - term- (gefunden von Michael Schenke)
704. Zeile unter Abb 2.10expr.t = expr1.t || term.t || '+' und nicht expr1.t = ... (gefunden von Michael Schenke)
71Beispiel 2.11 bei (2.5)Bei PRODUKTION steht '-' statt "=" (gefunden von Nikolai Kosjar)
75Abbildungexpr -> -term. Das - ist zu viel. (gefunden von Nikolai Kosjar)
90Quellcodematch('+'0); Die 0 ist zu viel. (gefunden von Nikolai Kosjar)
151Beispiel 3.7, Zeile 8"digits -> digit+" anstatt "digits -> digit"
154Abb. 3.8, Zeile 4 für "s""Der String s als Folge von Literalen" anstatt "Das Zeichen s als Literal" (gefunden von Marc Fontaine)
157Abb. 3.11, Zeile 5digit" anstatt "letter j digit"
185Abb. 3.31, Unterschrift"NFA" anstatt "NFS"
187Zeile 2"Dtran[A,b] = epsilon-closure(move(A,b))" anstatt "Dtran[A,b] = epsilon-closure(move(A,a))" (gefunden von Dennis Gronewold)
194Zeile 6"akzeptierenden" anstatt "akzeptieren" (gefunden von Oualid Marzougui)
2192. Absatz, Zeile 5das "k" von "sk" soll als Index geschrieben werden (gefunden von Oualid Marzougui)
2422. Absatzstatt "einfuegt" "eingefuegt" (gefunden von Nikolai Kosjar)
2471. Absatz, 2. Zeile"* und +" statt "* und *" (gefunden von Nikolai Kosjar)
2671. Absatz, 3. Zeile ganz rechtsEs muss von A, nicht von alpha abgeleitet werden: A =>* c \gamma, (gefunden von Nikolai Kosjar)
267ganz 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)
269Punkt 6."FOLLOW(F)=" anstelle von "FOLLOW(F)=FOLLOW(F')=". (gefunden von Simon Weber)
270AbbildungsunterschriftGrammatik (4.15) auf Seite 263 statt (4.28). (gefunden von Nikolai Kosjar)
271Algorithmus 4.17Punkt 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)
273Abb 4.18, linke SpalteS' statt E' dritte Spalte: E->b statt E'->b (gefunden von Michael Schenke)
288Beispiel 4.24"stmt ->" stat "stmt to" (gefunden von Nikolai Kosjar)
294Abb 4.31Im Zustand I9: T -> T.*F statt E->T.*F (gefunden von Michael Schenke)
297Abb 4.33, Zeile 2S' statt S0
304Abb 4.38, Zeile 4(4) statt 4()
306In der MitteAbbildung 4.3.7 anstatt Abbildung 4.3.1 (gefunden von Alexander Nobbe); auch im englischen Original
337Abbildung 4.50Bei I4 fehlt S -> iS. (gefunden von Alexander Nobbe); auch im englischen Original
453Abbildung 6.15es fehlt {T.type=C.type; T.width=C.width;} als Aktion für T->C (2.Zeile); auch im englischen Original
453Abbildung 6.15Die letzte Aktion muss heissen: {C.type = array(num.value, C1.type); C.width=num.value x C1.width;} (gefunden von Thomas Kranz)
615Referenz 6Es sollte heissen "On-the-fly garbage collection" (gefunden von Josef Joller).
652letzte Zeile in Abbildung 8.12Es 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).
665Zeile 5Anstatt Maschinenbefehle erteilt sollte es heißen Maschinenbefehle erzeugt.
682Zeile -9Anstatt Aktion erteilt, sollte es heißen Aktion erzeugt werden.
743Beispiel 9.13def_{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)
754Zeile 12Sollte heissen: Top /\ x = x für alle x in V
754Zeile 15Sollte heissen: Bot /\ x = Bot für alle x in V
760Zeile -3Gleichung 9.5: F1 sollte F sein.
772Zeile -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"
1205Mitte"z='\n'" Diese Zeile muss gestrichen werden. SableCC erkennt dies nicht als "Newline"!
1206SableCC Quellcode in unteren Hälfte10 | 13 | 9)"