Übersetzerbau - Dieter Maurer

Übersetzerbau

Theorie, Konstruktion, Generierung

(Autor)

Buch | Softcover
XVI, 640 Seiten
1997 | 2., überarb. u. erw. Aufl.
Springer Berlin (Verlag)
978-3-540-61692-4 (ISBN)
69,99 inkl. MwSt
Diese zweite, überarbeitete und erweiterte Auflage vermittelt Studenten der Informatik Fundament und Rüstzeug des Übersetzerbaus für imperative, funktionale, logische und - neu hinzugekommen - objektorientierte Programmiersprachen und moderne Zielarchitekturen: von den theoretischen Grundlagen bis zu konstruktiven und generativen Verfahren.
Die statische Analyse von Programmen, die für die Unterstützung des Softwareentwicklungsprozesses ebenso wichtig ist wie hier für die Erzeugung effizienter Zielprogramme, wird semantisch fundiert. Die erforderlichen Grundkenntnisse aus der Theorie der formalen Sprachen und Automaten werden passend bereitgestellt.
Das Buch enthält zahlreiche Übungsaufgaben und eignet sich zur Vorlesungsbegleitung ebenso wie zum Selbststudium.

1 Einleitung.- 1.1 Höhere Programmiersprachen.- 1.2 Implementierung von Programmiersprachen.- 2 Übersetzung imperativer Programmiersprachen.- 2.1 Sprachkonzepte und ihre Übersetzung.- 2.2 Die Architektur der P-Maschine.- 2.3 Wertzuweisungen und Ausdrücke.- 2.4 Bedingte und iterative Anweisungen, Anweisungsfolgen.- 2.5 Speicherbelegung für Variablen einfachen Typs.- 2.6 Speicherbelegung für Felder.- 2.7 Speicherbelegung für Verbunde.- 2.8 Zeiger und dynamische Speicherbelegung.- 2.9 Prozeduren.- 2.10 Hauptprogramm.- 2.11 Übungen.- 2.12 Literaturhinweise.- 3 Übersetzung funktionaler Programmiersprachen.- 3.1 Sprachtyp und einleitendes Beispiel.- 3.2 LaMa, eine einfache funktionale Programmiersprache.- 3.3 Einführung in die Übersetzung von LaMa.- 3.4 Umgebungen und Bindungen.- 3.5 Die Architektur der MaMa.- 3.6 Kellerverwaltung und Adressierung.- 3.7 Befehlsvorrat und Übersetzung.- 3.8 Implementierung von Listen.- 3.9 Übungen.- 3.10 Literaturhinweise.- 4 Übersetzung logischer Programmiersprachen.- 4.1 Logische Programmiersprachen.- 4.2 Prädikatenlogische Grundlagen.- 4.3 Unifikation.- 4.4 Ausführung von logischen Programmen.- 4.5 Prolog.- 4.6 Prolog: Abstrakte Maschine und Übersetzung.- 4.7 Übersetzung von Prolog.- 4.8 Effizienzverbesserungen.- 4.9 Übungen.- 4.10 Literaturhinweise.- 5 Übersetzung objektorientierter Sprachen.- 5.1 Konzepte objektorientierter Sprachen.- 5.2 Die Übersetzung von Methoden.- 5.3 Schemata zur Übersetzung von Vererbung.- 5.4 Generizität.- 5.5 Übungen.- 5.6 Literaturhinweise.- 6 Struktur von Übersetzern.- 6.1 Übersetzerteilaufgaben.- 6.2 Die lexikalische Analyse.- 6.3 Der Sieber.- 6.4 Die syntaktische Analyse.- 6.5 Die semantische Analyse.- 6.6 Die maschinenunabhängige Optimierung.- 6.7 Die Adreßzuordnung.- 6.8 DieErzeugung des Zielprogramms.- 6.9 Die maschinenabhängige Codeverbesserung.- 6.10 Reale Übersetzerstrukturen.- 6.11 Formale Spezifikation und Generierung von Übersetzermoduln.- 6.12 Literaturhinweise.- 7 Lexikalische Analyse.- 7.1 Die Aufgabe der lexikalischen Analyse.- 7.2 Theoretische Grundlagen.- 7.3 Sprache zur Spezifikation der lex. Analyse.- 7.4 Die Generierung eines Scanners.- 7.5 Der Sieber.- 7.6 Flex, ein Scanner-Generator unter UNIX.- 7.7 Übungen.- 7.8 Literaturhinweise.- 8 Syntaktische Analyse.- 8.1 Die Aufgabe der syntaktischen Analyse.- 8.2 Theoretische Grundlagen.- 8.3 Top-down-Syntaxanalyse.- 8.4 Bottom-up-Syntaxanalyse.- 8.5 Bison, ein LALR(1)-Parsergenerator.- 8.6 Übungen.- 8.7 Literaturhinweise.- 9 Semantische Analyse.- 9.1 Aufgabe der semantischen Analyse.- 9.2 Attributgrammatiken.- 9.3 Einige Attributgrammatiken.- 9.4 Die Generierung von Attributauswertern.- 9.5 Übungen.- 9.6 Literaturhinweise.- 10 Abstrakte Interpretation.- 10.1 Einführung.- 10.2 Abstrakte Interpretation (denotationelle Semantik).- 10.3 Abstrakte Interpretation (operationelle Semantik).- 10.4 Literaturhinweise.- 11 Bäume: Mustererkennung und Analyse.- 11.1 Programmtransformationen.- 11.2 Codeselektion.- 11.3 Das Mustererkennungsproblem.- 11.4 Das Baumanalyseproblem.- 11.5 Endliche Baumautomaten.- 11.6 Generierung von Mustererkennern.- 11.7 Die Generierung von Baumanalysatoren.- 11.8 Baumautomaten mit Kosten.- 11.9 Implementierung.- 11.10 Übungen.- 11.11 Literaturhinweise.- 12 Codeerzeugung.- 12.1 Abstrakte und reale Maschinen.- 12.2 Klassifikation von Architekturen.- 12.3 Programmdarstellungen.- 12.4 Codeerzeugung, integrierte Verfahren.- 12.5 Registerzuteilung durch Graphfärbung.- 12.6 Instruktionsanordnung.- 12.7 Übungen.- 12.8 Literaturhinweise.- Literatur.

Erscheint lt. Verlag 13.3.1997
Reihe/Serie Springer-Lehrbuch
Zusatzinfo XVI, 640 S. 14 Abb.
Verlagsort Berlin
Sprache deutsch
Maße 155 x 235 mm
Gewicht 850 g
Themenwelt Mathematik / Informatik Informatik Programmiersprachen / -werkzeuge
Informatik Theorie / Studium Compilerbau
Schlagworte Compiler • HC/Informatik, EDV/Programmiersprachen • höhere Programmiersprache • Mantis • Programmieren • Programmiersprache • PROLOG • Rack • Selektion • UNIX
ISBN-10 3-540-61692-6 / 3540616926
ISBN-13 978-3-540-61692-4 / 9783540616924
Zustand Neuware
Haben Sie eine Frage zum Produkt?
Mehr entdecken
aus dem Bereich
Grundlagen und Anwendungen

von Hanspeter Mössenböck

Buch | Softcover (2024)
dpunkt (Verlag)
29,90
a beginner's guide to learning llvm compiler tools and core …

von Kai Nacke

Buch | Softcover (2024)
Packt Publishing Limited (Verlag)
47,35