Übersetzerbau-Praktikum

Priv.-Doz. Dr. Lothar Schmitz
Frühjahrstrimester 2008

[Ziel des Praktikums] [Termine und Orte] [Aufgaben und Ergebnisse] [Scheinerwerb] [Links & Literatur zum Compilerbau]

 

Ziel des Praktikums

Ziel des Praktikums ist es, Einblicke in das Innere von Werkzeugen zur Syntaxverarbeitung zu geben. Die Teilnehmer sollen damit in die Lage versetzt werden, angebotene Syntaxwerkzeuge einschätzen und sinnvoll einsetzen zu können. Dazu ist neben eigenen praktischen Erfahrungen auch ein Grundwissen über Analyse- und Generierungs- mechanismen erforderlich. Das Praktikum beginnt daher mit fünf Vorlesungsblöcken, in denen kurz die wesentlichen theoretischen Grundlagen dargestellt werden.

Daran anschließend sollen einige zentrale Komponenten eines Compiler-Compilers selbst praktisch entwickelt und ausprogrammiert werden. Als Programmiersprache wird das aus der Einführung in die Informatik II bekannte Ada verwendet, allerdings in der Version Ada 95, die u.a. ein ordentliches Stringhandling mit Zeichenketten variabler Länge bietet.

[zur Übersicht]

 

Termine und Orte

Es handelt sich um ein dreistündiges Praktikum; während der Einarbeitungsphase treffen wir uns zwei Mal die Woche:

  • Montag, 14.04.2008, um 13.15 Uhr im Geb. 41 / Raum 2417
  • Donnerstag, 17.04.2008, um 16.45 Uhr im Geb. 41 / Electronic Classroom
  • Montag, 21.04.2008, um 13.15 Uhr im Geb. 41 / Electronic Classroom
  • Donnerstag, 24.04.2008, um 16.45 Uhr im Geb. 41 / Electronic Classroom
  • Montag, 28.04.2008, um 13.15 Uhr im Geb. 41 / Electronic Classroom

Zur Projektphase organisieren sich die Teilnehmer in drei Teams. Mitte Mai bis Mitte Juni treffen sich die drei Teams mit mir zu individuellen, wöchentlichen Beratungsterminen.

 

In der zweiten Junihälfte präsentieren die drei Teams ihre Arbeitsergebnisse.

[zur Übersicht]

 

Aufgaben und Ergebnisse

Die Bearbeitung ist gegliedert in zwei Phasen:

  1. In der Einarbeitungsphase geht es darum, sich in die Theorie sowie in einige vorgegebene Komponenten einzuarbeiten:

    • Lexikalischer Analyse mit regulären Mustern;
    • Kontextfreie Grammatiken und Syntaxanalyse;
    • Attributierte Grammatiken und Attributauswertung;
    • Implementierung der while-Sprache, die im letzten Trimester im Rahmen eines Hausaufgabenprojekts (zip-File) erstellt wurde;
    • Vorbereitete Basissoftware (zip-File) mit Implementierungen von Mengen und Relationen, Grammatiken und Grammatik-Infos, sowie Rahmen für die Darstellung von Syntaxbäumen und Attributierungen.

     

    Zum Einstieg wird das Hausaufgabenprojekt auf der neuen Basis reimplementiert.

  2. In der Projektphase erstellen die drei Teams:

    • einen Scanner-Generator;
    • einen Parser-Generator für Recursive Descent Parser;
    • unterstützende Attributierungen

     

    Die Teams wenden ihre Programme auf Beispiele an:

    • die while-Sprache aus der Einarbeitungsphase
    • Selbstanwendungen im Sinne eines Bootstrap

     

[zur Übersicht]

 

Scheinerwerb

Einen Schein erhält, wer

  1. sowohl die Einarbeitungsaufgaben (25 Prozent)
  2. als auch die Projektaufgaben mit Dokumentation und abschließender Präsentation (mündliche Abschlußprüfung) (zusammen 75 Prozent)

erfolgreich absolviert.

[zur Übersicht]

 

Literatur & Links zum Compilerbau

  • Auf der Syntax-Seite finden Sie u.a. mein Buch (ausführliche Darstellung), Tutorials, Beispiele und unsere Werkzeuge SIC und Jaccie.
  • Ebenfalls online verfügbar: Das Buch Parsing Techniques von Dick Grune eignet sich auch sehr gut für einen "vertieften Einstieg" in die Syntaxanalyse.

[zur Übersicht]