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