| 1.   | Einführung
         | 
| 1.1      | Von der Quellsprache zur Zielmaschine
         | 
| 1.2      | Eigenschaften der Quellsprache
         | 
| 1.2.1        | Notation der Grundsymbole
         | 
| 1.2.2        | Syntaktische Struktur
         | 
| 1.2.3        | Kontextabhängigkeiten (statische Semantik)
         | 
| 1.2.4        | Bedeutung (dynamische Semantik)
         | 
| 1.3      | Eigenschaften der Zielmaschine
         | 
| 2.   | Übersetzerstruktur und Schnittstellen
         | 
| 2.1      | Aufgabenorientierte Übersetzerstruktur
         | 
| 2.1.1        | Analyse
         | 
| 2.1.2        | Abstrakte Maschine, Zwischensprache
         | 
| 2.1.3        | Synthese
         | 
| 2.2      | Schnittstellen
         | 
| 2.2.1        | Filter
         | 
| 2.2.2        | Datenmodule
         | 
| 2.2.3        | Übersetzerpässe
         | 
| 2.3      | Portierung von Übersetzern
         | 
| 2.4      | Übersetzerumgebung
         | 
| 2.5      | Übersetzergeneratoren
         | 
| 3.   | Lexikalische Analyse
         | 
| 3.1      | Spezifikation von Grundsymbolen
         | 
| 3.2      | Konstruktion endlicher Automaten
         | 
| 3.3      | Implementierung der Lexikalischen Analyse
         | 
| 3.3.1        | Rahmen und Schnittstellen
         | 
| 3.3.2        | Implementierung des endlichen Automaten
         | 
| 3.4      | Generatoren
         | 
| 4.   | Syntaktische Analyse
         | 
| 4.1      | Kontextfreie Grammatiken, abstrakte und konkrete Syntax
         | 
| 4.2      | Zielbezogene Zerteiler
         | 
| 4.3      | Quellbezogene Zerteiler
         | 
| 4.4      | Behandlung syntaktischer Fehler
         | 
| 4.5      | Zerteiler-Generatoren
         | 
| 5.   | Attributierte Grammatiken
         | 
| 5.1      | Definition und Beispiel
         | 
| 5.2      | Konstruktion von Attributauswertern
         | 
| 5.2.1        | Abhängigkeitsgraphen und Zerlegungen
         | 
| 5.2.2        | Besuchssequenzen
         | 
| 5.2.3        | LAG - Attributauswerter
         | 
| 5.3      | Implementierung von Attributauswertern
         | 
| 5.4      | Generatoren für Attributauswerter
         | 
| 6.   | Semantische Analyse
         | 
| 6.1      | Typprüfung
         | 
| 6.2      | Bezeichneridentifikation
         | 
| 6.2.1        | Attributierung von Gültigkeitsbereichen
         | 
| 6.2.2        | Implementierung der Bezeichneridentifikation
         | 
| 6.3      | Fehlerbehandlung
         | 
| 6.4      | Zwischen-Code-Erzeugung
         | 
| 7.   | Code-Erzeugung
         | 
| 7.1      | Eigenschaften der Zielmaschine
         | 
| 7.1.1        | Speicherklassen
         | 
| 7.1.2        | Operanden und Adressierungsarten
         | 
| 7.1.3        | Instruktionen
         | 
| 7.2      | Speicherabbildung
         | 
| 7.2.1        | Datentypen
         | 
| 7.2.2        | Maschinenzustand
         | 
| 7.3      | Abbildung der Operationen
         | 
| 7.3.1        | Prozeduraufrufe
         | 
| 7.3.2        | Ablaufstrukturen
         | 
| 7.3.3        | Kurzauswertung logischer Ausdrück
         | 
| 7.3.4        | Ausdrücke
         | 
| 7.4      | Code-Auswahl
         | 
| 7.4.1        | Ausdrucksbäume
         | 
| 7.4.2        | Ablaufstrukturen
         | 
| 7.4.3        | Generatoren zur Code-Auswahl
         | 
| 7.5      | Registerzuteilung
         | 
| 7.5.1        | Registerzuteilung in einem Durchgang
         | 
| 7.5.2        | Registerzuteilung für Grundblöcke in zwei Durchgängen
         | 
| 7.5.3        | Optimale Registerzuteilung für Ausdrucksbäume
         | 
| 7.5.4        | Registerzuteilung durch Graphfärbung
         | 
| 7.6      | Assemblierung
         | 
| 7.6.1        | Formatierung der Instruktionen
         | 
| 7.6.2        | Sprungadressierung
         | 
| 7.6.3        | Code-Datei
         | 
| 8.   | Optimierung
         | 
| 8.1      | Verbessernde Transformationen in Grundblöcken
         | 
| 8.1.1        | Konstantenfaltung und algebraische Vereinfachung
         | 
| 8.1.2        | Eliminieren von Bereichsprüfungen
         | 
| 8.1.3        | Gemeinsame Teilausdrücke
         | 
| 8.1.4        | Überflüssige Zuweisungen
         | 
| 8.2      | Datenflußanalyse
         | 
| 8.2.1        | Ablaufgraphen
         | 
| 8.2.2        | Schleifenerkennung
         | 
| 8.2.3        | Code-Verschiebung aus Schleifen
         | 
| 8.2.4        | Datenflußgleichungen
         | 
| 8.2.5        | Iteratives Lösungsverfahren
         | 
| 8.2.6        | Hierarchische Lösungsverfahren
         | 
| 8.3      | Anwendungen der Datenflußinformation
         | 
| 8.3.1        | Erreichende Definitionen
         | 
| 8.3.2        | Globale gemeinsame Ausdrücke
         | 
| 8.3.3        | Lebendige Variable
         | 
| 8.3.4        | Redundante Berechnungen in Schleifen
         | 
| 8.3.5        | Aliasnamen
         | 
| 8.3.6        | Prozeduren
         | 
| 8.4      | Nachoptimierung
         | 
| 8.5      | Anordnung von Instruktionen
         | 
| 8.5.1        | Parallele Funktionseinheiten
         | 
| 8.5.2        | Fließbandverarbeitung
         | 
| Anhang
         | 
| 1.   | Literaturhinweise
         | 
| 2.   | Literaturverzeichnis
         |