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)" |