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

Verantwortlich für den Inhalt: E-Mail sendenWE Informatik