Im Gegensatz zu den sonst üblichen Schinken kann man mit diesem Buch lernen, schnell einen effektiven und effizienten Compiler entwickeln. Die im Buch betrachtete Sprache ist Oberon-0, eine Untermenge von Oberon und Pascal recht ähnlich. Als alter C++ und Java-Hase muß ich neidvoll zugeben, daß die Programme sehr übersichtlich sind.
Sicher ist noch ein wenig mehr Hintergrundwissen über die Eigenschaften von LL, SLR, LALR, ... -Parsern sinnvoll, um den Inhalt richtig einschätzen zu können (dazu sollte man das Drachenbuch genau lesen). Die Einfachheit mit der Wirth einen weit fortgeschrittenen imperativen Compiler entwickelt ist beeindruckend.
Obwohl oder gerade weil weder Scanner-/Parser-Generatoren, Zwischensprachen, Datenflußanalysen und komplexe Optimierungsstrategien wenig intensiv behandelt werden ist das Endprodukt, ein Oberon0-Compiler sehr anschaulich. Wer einmal einen mit Lex/Yacc entwickelten Compiler gesehen hat weiss, dass der Einsatz dieser Tools zwangsläufig zum alten Unix-Stil führt (den ich persönlich nicht mag) und schon eine einfache Sprache im Stil von Oberon-0 das ganze Projekt schnell ausufern lässt.
Obwohl das ganze Buch lesenswert ist, fand ich die Abschnitte über (verzögerte) Codeausgabe, Konstantenfaltung und Typinferenz/Strukturen besonders interessant. Sowas findet man nirgendwo so leicht nachvollziehbar (in Text wie im Code) wie hier.
Alles in allem sehr empfehlenswert. Eigentlich bin ich kein Wirth-Fan (gerade aufgrund seiner generellen und unverhohlenen Ablehnung komplexerer Compilerbau-Tools), aber hiermit ist ihm wirklich ein rundum stimmiges Werk gelungen. Jeder Informatiker sollte einmal einen Compiler entwickelt haben - wie ein Arzt auch mal operiert haben sollte, auch wenn er sonst nur Aspirin verschreibt.
Und dann ist das Buch auch noch sehr preiswert...