Dieses Buch bietet einen umfassenden und praxisnahen Einblick in die Theorie
und Technik der Compilerentwicklung. Auffällig ist erst einmal, dass es sich hier
um ein englisches Buch handelt, aber die Sprache ist relativ einfach und es
werden alle wichtigen Begriffe gut eingeführt. Dies ist eine der Stärken des
Buchs – alle wichtigen theoretischen Grundlagen wie endliche Automaten und
Grammatiken werden nicht nur eingeführt, sondern auch erläutert und mit
Beispielen und Aufgaben versehen, sodass neue Konzepte gut vom Leser
aufgenommen werden können.
Zum Thema: Die Autoren gehen im ersten Teil auf den allgemeinen Aufbau
eines Compilers ein. Dazu werden zuerst die theoretische Grundlagen sehr
verständlich und anschaulich behandelt. Dann wird der Leser mittels Beispielen
an die Problematik herangeführt und eine Lösung wird erarbeitet. Gleichzeitig wird
das gewonnene Wissen angewandt, mittels der Programmierung eines Compilers
– in der modernen Sprache Java. Dabei wird auch auf tiefer gehende Themen
wie Garbage-Collection eingegangen.
Im zweiten Teil geht es dann um die praxisbezogenen Techniken der
Code-Optimierung. Es werden die verschiedenen Problemstellungen und die
dazugehörigen Techniken, maschinenabhängige und -unabhängige, vermittelt und
analysiert. Zum Abschluss findet sich im Anhang noch der gesammelte und
kommentierte Code für den Compiler aus dem ersten Teil.
Das Buch ist sehr umfassend und somit ist das benötigte Vorwissen relativ
gering – man sollte praktische Erfahrung beim Programmieren (C-Kenntnisse
sind hilfreich) und etwas allgemeine Erfahrung im Umgang mit Theoretischer
Informatik mitbringen. Trotz dieses Umfangs gelingt es, den Stoff dank einer
sehr guten Gliederung relativ einfach zu vermitteln. Dazu wird immer zuerst
eine gute Einführung und Motivation zu den jeweiligen Abschnitten geboten, in
den Abschnitten wird mit Beispielen und vielen Abbildungen ein gutes
Verständnis ermöglicht und im Anschluss dann mit Übungen das Wissen
gefestigt. Zu jedem Kapitel gibt es dann nochmal eine Zusammenfassung und
ggf. ein Literaturverzeichnis zur Vertiefung.
Insgesamt ein sehr solides Buch, das mit seinem Ansatz überzeugen kann.
Markus Oehme, Jena
|