Bewertung:

Das Buch ist eine nützliche Einführung in Grammatiken, Parsing und Kompilierung mit praktischen Codebeispielen. Allerdings gibt es Bedenken hinsichtlich der physischen Qualität des Buches.
Vorteile:Das Buch führt effektiv in die wichtigsten Konzepte ein, enthält echte Code-Implementierungen (in Haskell) und ist für Anfänger geeignet. Es bietet ein gutes Preis-Leistungs-Verhältnis, insbesondere wenn es gebraucht gekauft wird.
Nachteile:Einige Exemplare können eine schlechte physische Qualität aufweisen, bei der sich Seiten herauslösen.
(basierend auf 6 Leserbewertungen)
Implementing Programming Languages. an Introduction to Compilers and Interpreters
Eine Programmiersprache zu implementieren bedeutet, die Kluft zwischen dem Denken des Programmierers auf hoher Ebene und den Nullen und Einsen der Maschine zu überbrücken. Wenn dies auf effiziente und zuverlässige Weise geschieht, können sich die Programmierer auf die eigentlichen Probleme konzentrieren, die sie zu lösen haben, und nicht auf die Details der Maschinen.
Das Verständnis der gesamten Kette von den Sprachen bis zu den Maschinen ist jedoch nach wie vor ein wesentlicher Bestandteil der Ausbildung eines jeden ernsthaften Programmierers. Es wird zu einem kompetenteren Programmierer führen, der darüber hinaus in der Lage ist, neue Sprachen zu entwickeln. Eine neue Sprache ist oft der beste Weg, um ein Problem zu lösen, und weniger schwierig, als es vielleicht klingt.
Dieses Buch verfolgt einen theoriegestützten praktischen Ansatz, bei dem theoretische Modelle als Blaupause für die tatsächliche Programmierung dienen. Der Leser wird angeleitet, Compiler und Interpreter auf verständliche und skalierbare Weise zu erstellen. Die Lösungen sind darüber hinaus auf verschiedene Implementierungssprachen übertragbar.
Ein Großteil des eigentlichen Codes wird automatisch aus einer Grammatik der Sprache generiert, indem das BNF-Konverter-Tool verwendet wird. Der Rest kann in Haskell oder Java geschrieben werden, wofür das Buch detaillierte Anleitungen gibt, aber mit einigen Anpassungen auch in C, C++, C# oder OCaml, die vom BNF Converter unterstützt werden. Der Schwerpunkt des Buches liegt auf imperativen und funktionalen Standardsprachen: eine Teilmenge von C++ und eine Teilmenge von Haskell sind die Ausgangssprachen, und die Java Virtual Machine ist das Hauptziel.
Die einfache Kompilierung von nativem Intel x86-Code wird gezeigt, um die Kette von der Sprache zur Maschine zu vervollständigen. Das letzte Kapitel verlässt die Standardpfade und erkundet den Raum des Sprachdesigns, der von minimalen Turing-kompletten Sprachen bis zur Mensch-Computer-Interaktion in natürlicher Sprache reicht.