[ Index ]
Next:
Einleitung
Up:
Compilerbau
Previous:
Compilerbau
Inhalt
Einleitung
Compiler im Überblick
Komponenten eines Compilers
Compiler vs. Interpretierer
Entwurfsziele
Bootstrapping
Zwischensprachen
Grundlagen
Algorithmen
Entwicklung der Programmiersprachen
Zeichen, Zeichenketten, Alphabete
Graphen
Bäume
Endliche Automaten
Nichtdeterministische endliche Automaten
Reguläre Ausdrücke
Kontextfreie Grammatiken
Ableitungsbäume
Links- und Rechtsableitungen
Mehrdeutigkeit
Die Chomsky-Hierarchie
Kellerautomaten
Deterministische Kellerautomaten
Die Sprache OBERON-0
Die Symbole von OBERON-0
Die Syntax von OBERON-0
Deklarationen
Anweisungen
Ausdrücke
Ein Beispiel
Lexikalische Analyse
Grundsymbole
Endliche Automaten als Scanner
Scannergenerierung mit lex
Variablen und Tokens
Regeln
Von der Spezifikation zum Programm
Ein Beispiel
Ein Scanner für OBERON-0
Syntaktische Analyse
Aufgaben eines Parsers
BNF und EBNF
Top-down-Analyse
LL(k)-Grammatiken
Rekursiver Abstieg
Rekursiver Abstieg für arithmetische Ausdrücke
Produktionen von OBERON-0 für arithmetische Ausdrücke
Analysefunktionen
Linksrekursionen
Linksfaktorisierung
FIRST und FOLLOW
FIRST und FOLLOW: Formale Definition
Konstruktion von FIRST
Konstruktion von FOLLOW
Parsingtabellen
Fehlerbehandlung
Qualitätskriterien für die Fehlerbehandlung (Wirth )
Bottom-up-Analyse
LR-Parser
Arbeitsweise eines LR-Parsers
Ein Beispiel
LR(k)-Grammatiken
Handles
Die kanonische Kollektion von LR(0)-Items
CLOSURE
Gültige Items
GOTO(I,X)
Konstruktion der kanonischen Kollektion
SLR-Parsing-Tabellen
Kanonische LR-Parsing-Tabellen
Konstruktion der LR(1)-Item-Mengen
Beispiel
Der LR(1)-Parser
LALR-Parsing-Tabellen
Der Parsergenerator yacc
Beispiel: Grammatik für arithmetische Ausdrücke
Der erzeugte Kellerautomat
Von der Spezifikation zum Programm
Kontrollfluß zwischen
lex
und
yacc
yacc-Spezifikationen
yacc
-Deklarationen
Weitere Deklarationen
Syntax für Produktionen der
yacc
-Grammatik
Semantische Aktionen
Semantische Werte
Konventionen für lesbare Spezifikationen
Konflike in yacc-Grammatiken
Das dangling-else-Problem
Fehlerbehandlung
Codeerzeugung
Konkrete vs. abstrakte Syntax
Der abstrakte Programmbaum
Statische und dynamische Semantik
Postfixcodeerzeugung
Die Übersetzung eines Beispielprogramms
Index
Literatur
Über dieses Dokument ...
Next:
Einleitung
Up:
Compilerbau
Previous:
Compilerbau
Prof. Dr. Reinhard Völler