Compilerbau 2
Sommersemester 2000

Aktuelles

Log 18.4.00

  1. Aufteilung in zwei Gruppen
  2. Sprachdesign: (so niedergelegt in Def. MMS 1.2)
    • Strukturen/Pointer: Die Sprache ist relativ statisch. Pointer und Strukturen fehlen. Aus Sicht des Compilerbauers und um die Komplexität nicht zu hoch zu schrauben wollen wir aber darauf verzichten.
    • Felder: Array-Grenzen bleiben nach dem Anlegen statisch. Array-Grenzen dürfen nur INTEGER sein. Arrays werden an Prozeduren call-by-reference übergeben.
    • Parameterübergabe: Außer bei Arrays werden Parameter immer call-by-value übergeben. Auswirkungen nach außen haben Prozeduren über freie Variable. Unklar: Prozeduren/Label als Parameter!
    • Datentypen: Einfache Datentypen sind INTEGER, REAL und BOOLEAN. Bei gemischten REAL- und INTEGER-Ausdrücken wird dabei implizit gecastet. Den Zieltyp bestimmt der lvalue, sonst wird immer nach REAL gewandelt. ARRAY ist der einzige höhere Datentyp, er kann nur einfache Datentypen als Basistyp enthalten.
    • I/O: Es gibt die Operationen IN und OUT. Als Abgrenzung zu Prozeduren folgen die Argumente nicht in Klammern. Der eingelesenen Typ wird durch den Typ der bei IN auftretenden Variable festgelegt. Es dürfen nur Variablen von einen einfachen Type oder Feldelemente, keine Felder ein- oder ausgegeben werden.
    • Konstanten: Können Konstanten nicht per ENI behandelt werden, müssen Sie in Hilfszellen abgelegt werden (Identifikator/Symboltabelle).
  3. Aufgabe: Tokenklassen und reguläre Ausdrücke dazu definieren.

Planung/Log 11.4.00

Zeitplanung

Phase Wochen Deadlines Meilensteine
Einarbeitung 1 18.4 Erfordernisse, Sprachgewöhnung, Werkzeuge
Erarbeitung / Analyse 1 25.4 Produktdefinition, Schnittstellen
Design I + Implementierung 3 16.5 Produktarchitektur
Design II / MMS 1 23.5 Komponenten
Integration und Test 2 6.6 (laufendes) System
Dokumentation 2 20.6 konsistente Projektdokumentation
Erweiterungen / zweiter Zyklus 3 11.7 konsistente Projektdokumentation

Organisatorisches

Die Veranstaltung findet statt. (Vgl. auch den Eintrag im kommentierten Vorlesungsverzeichnis)

Literatur

W.-M. Lippe: Compilerbau-Script
Das Script ist im Skriptenverzeichnis der Informatik ist verfügbar, und eine gedruckte Version davon steht in Informatik-Abteilung der Hauptbibliothek zur Verfügung. Dort ist auch eine Version der MML definiert.
H. Zima: Compilerbau I, II
O. Meyer: Syntaxanalyse
Bereits vor Jahren in der Reihe Informatik im BI-Verlag sind die Bände Compilerbau I und Compilerbau II von H. Zima, und der Band Syntaxanalyse von O. Meyer erschienen. Alle drei sind schon einige Jahre alt, aber immer noch sinnvoll.
Aho, Ullman, Sethi, Hopcroft:
Ein Klassiker ist das bei Addison-Wesley erschienene sogenannte Dragon-Book Principles of Compiler Design von A. V. Aho und J. D. Ullmann, überhaupt hat die Gruppe Aho / Sethi / Hopcroft / Ullman eine ganze Menge zu dem Thema geschrieben, u.a. auch das übersetzte, 1988 herausgegebene überarbeitete Drachenbuch Compilerbau
Ebenfalls aus dieser Gruppe stammt Aho/Ullmann: The Theory of Parsing, Translationand Compiling (Vol. I+II), erschienen bei Prentice-Hall 1972.
Niklaus Wirth:
Das kleine Bändchen Compilerbau, Teubner 1981 von Niklaus Wirth ist wirklich nicht mehr als eine Einführung, aber immerhin vom Vater mehrerer erfolgreicher Sprachen. Aktueller ist Grundlagen und Techniken des Compilerbaus, Oldenbourg 1996.
Diverse:
Etwas aktuellere deutschsprachige Bücher sind zum Beispiel Uwe Kastens recht kompakte Darstellung Übersetzerbau (Oldenbourg 1990) und das Buch Praxis des Compilerbaus von Franz Josef Schmitt (Hanser 1992), das die Theorie alledings nur oberflächlich behandelt und schwerpunktmäßig auf die Compilerbau-Programme lex und yacc eingeht.
Formaler mit attributierten Grammatiken setzt sich Ulrich Mahn in Attributierte Grammatiken und Attributierungsalgorithmen auseinander, erschienen 1988 in der Reihe Informatik Fachberichte von Springer.
J. Lilienbecker / F. Stratmann / M. Frericks:
Sie haben den aus einer Informatik-3 hervorgegangenen von-Neumann-Simulator erstellt und dokumentiert

Dietmar Lammers
Last modified: Tue Jul 4 09:44:20 MET DST 2000