Technische Universität München
Fakultät für Informatik
Prof. Dr. Helmut Seidl
Riitta Höllerer


Praktikum des Übersetzerbaus WS 2003/04:

Generierung von Benutzungsoberflächen


Aufgabenblatt 4

19. November 2003

9. Aufgabe  (Memo- und Faxformulare mit EMUGEN)

Entwerfen Sie ein Memo- und ein Faxformular. Erstellen Sie dann eine VisualEmugen-Eingabe, aus der die Oberfläche für Ihre Formulare generiert werden kann. Das heißt, Sie erstellen ein Datenmodell formulare mit zwei Alternativen memo und fax. Als Aktionen relisieren Sie die Speichern- und Oeffnen- Aktionen, wie sie in der Aufgabe 5 erläutert wurden.

Compilerbau-Werkzeuge: JFlex, CUP und classgen

Bisher haben wir eine Benutzungsoberfläche per Hand implementiert und einige mit EMUGEN generiert. Auf den nächsten Arbeitsblättern befassen wir uns mit den Techniken aus dem Übersetzerbau, die zur Erstellung von EMUGEN-artigen Werkzeugen verwendet werden. Wir erstellen einen Compiler für eine einfache Formularsprache, in der man Memos und Faxe beschreiben kann. Der Compiler erzeugt aus einer Eingabe ein Memo oder ein Fax. Bei der Erstellung des Compilers kommen die Werkzeuge: Scannergenerator JFlex, Parsergenerator Cup und das Werkzeug classgen zum Einsatz. Diese Werkzeuge sind in dem vorgegebenen Werkzeugpaket für das Praktikum CompilerConstructionKit enthalten. Die einzelnen Werkzeuge sind in den Merkblättern 1-3 genauer beschrieben.

10. Aufgabe  (Scanner für die Formularsprache)

Emtwerfen Sie eine Sprache in der Sie Memos und Faxe beschreiben können. Eine Memo-Eingabe für den Compiler könnte etwa folgendermaßen beginnen:
Memo Von Anna An Johannes
Memo, Von und An sind dabei Schlüsselwörter (also unveränderliche Bestandteile einer Memo-Beschreibung) und Anna und Johannes sind Identifikatoren (veränderliche Teile).
Erstellen Sie dann eine Scanner-Spezifikation für Ihre Formularsprache und generieren den Scanner mit JFlex. Erstellen Sie den Scanner in standalone-Modus und testen Sie den Scanner mit einigen Bespielen. Als Ausgabe soll der Scanner die erkannten Symbole ausdrucken. Geben Sie als Lösung der Aufgabe Ihren Scanner mit einigen Beispielen sowie Ihre Scanner-Spezifikation und Ablaufprotokolle einiger Tests als eine Aufgabe9.html-Datei ab.

Hinweise zum JFlex sind im Merkblatt 1 zusammengestellt. Durch die Installierung des Werkzeugpakets für das Praktikum sind die Pfade für JFlex schon richtig gesetzt, so dass Sie aus der Eingabe formulare.jflex den Scanner durch den Aufruf

jflex formulare.jflex
generieren können.

Abgabetermin: Dienstag, 25. November 16:00