Aus den häufig gestellten Fragen zu comp.compilers :
"Programmieren eines Personal Computers" von Per Brinch Hansen Prentice-Hall 1982 ISBN 0-13-730283-5
Dieses leider betitelte Buch erklärt das Design und die Erstellung einer Einzelbenutzer-Programmierumgebung für Mikros unter Verwendung einer Pascal-ähnlichen Sprache namens Edison. Der Autor präsentiert den gesamten Quellcode und Erklärungen für die schrittweise Implementierung eines Edison-Compilers und eines einfachen unterstützenden Betriebssystems, die alle in Edison selbst geschrieben sind (mit Ausnahme eines kleinen unterstützenden Kernels, der in einem symbolischen Assembler für PDP 11/23 geschrieben ist; Die vollständige Quelle kann auch für den IBM PC bestellt werden.
Die interessantesten Dinge an diesem Buch sind: 1) seine Fähigkeit zu demonstrieren, wie ein vollständiges, in sich geschlossenes, sich selbst wartendes, nützliches Compiler- und Betriebssystem erstellt werden kann, und 2) die interessante Diskussion über Sprachdesign- und Spezifikationsprobleme und Handel - Offs in Kapitel 2.
"Brinch Hansen on Pascal Compilers" von Per Brinch Hansen Prentice-Hall 1985 ISBN 0-13-083098-4
Ein weiteres leichtes, theoretisches und pragmatisches Buch ist das How-to-Code-It-Buch. Der Autor präsentiert das Design, die Implementierung und den vollständigen Quellcode für einen Compiler und einen P-Code-Interpreter für Pascal- (Pascal "minus"), eine Pascal-Teilmenge mit booleschen und ganzzahligen Typen (aber keine Zeichen, Reals, untergeordneten oder aufgezählten Typen). , Konstanten- und Variablendefinitionen sowie Array- und Datensatztypen (jedoch keine gepackten, Varianten-, Mengen-, Zeiger-, namenlosen, umbenannten oder Dateitypen), Ausdrücke, Zuweisungsanweisungen, verschachtelte Prozedurdefinitionen mit Wert- und Variablenparametern, if-Anweisungen, while-Anweisungen, und Anfang-Ende-Blöcke (aber keine Funktionsdefinitionen, Prozedurparameter, goto-Anweisungen und Beschriftungen, case-Anweisungen, Wiederholungsanweisungen, für Anweisungen und mit Anweisungen).
Der Compiler und der Interpreter sind in Pascal * (Pascal "Stern") geschrieben, einer Pascal-Teilmenge, die um einige Funktionen im Edison-Stil zum Erstellen von Softwareentwicklungssystemen erweitert wurde. Ein Pascal * -Compiler für den IBM-PC wird vom Autor verkauft, aber es ist einfach, den Pascal-Compiler des Buches auf jede bequeme Pascal-Plattform zu portieren.
Dieses Buch macht das Design und die Implementierung eines Compilers einfach. Mir gefällt besonders, wie sich der Autor mit Qualität, Zuverlässigkeit und Tests befasst. Der Compiler und der Interpreter können leicht als Grundlage für ein komplexeres Sprach- oder Compilerprojekt verwendet werden, insbesondere wenn Sie schnell etwas zum Laufen bringen müssen.