Projekt zur Vorlesung Übersetzerbau (SS01):
Ein Übersetzer für TassKaf
Die Sprache TassKaf
ist eine vereinfachte Version von Java. Sie wurde von Stephan
Diehl entwickelt und dient als Quellsprache für das Projekt der
Übersetzerbauvorlesung im Sommersemester 2001.
Folgende Themen werden auf dieser Seite
abgehandelt:
Vorbereitungen
(studcs)
Einige Umgebungsvariablen müssen gesetzt
werden.:
-
Die PATH-Variable
sollte folgenden Pfad enthalten: /usr/local/jdk/bin:/home/stud/mlangen/TassKaf/bin
-
Die CLASSPATH-Variable
sollte gesetzt sein auf: .:/usr/local/jdk/lib:/home/stud/mlangen/TassKaf
Umgebungsvariablen setzt man mit:
-
export <varname>=<value>
(bash) or
-
setenv <varname> <value>
(csh, tcsh).
Diese Zeilen sollten der .cshrc
resp. .tchshrc
bzw. .bashrc
hinzugefügt werden. Wenn alles korrekt konfiguriert ist, sollte die
Ausgabe in der rechten Spalte ausgegeben werden, wenn der Befehl in der
linken Spalte eingegeben wird:
java |
Usage: java [-options]
class [...] |
jasmin |
usage: jasmin [-d <directory>]
[-version] <file> [<file> ...] |
java JLex.Main |
Usage: JLex.Main <filename> |
java java_cup.Main |
Opening files...
Parsing specification
from standard input... |
Falls der java-Aufruf
in einer Abort-Nachricht
enden sollte, sollte LD_LIBRARY_PATH
auf einen gültigen Pfad überprüft werden, im Zeifelsfall
nicht setzen.
Hinweis: Das Verzeichnis /home/stud/mlangen
is nicht gruppen-/weltlesbar, man kann allerdings in das TassKaf-Unterverzeichnis
wechseln.
Das Projekt
Das Ziel des Projekts ist die Implementierung
eines Übersetzers für die Sprache TassKaf (files/syntax.ps.gz).Das
Projekt ist - ähnlich wie ein Compiler - in verschiedene Teilaufgaben
unterteilt:
-
Codeerzeugung
-
Syntaktische Analyse
-
Semantische Analyse
Die Zielsprache der Codeerzeugung ist Jasmin-Assembler.
Die erzeugte Datei wird dann mittels Jasmin nach Java Bytecode übersetzt.
The Übersetzer soll in Java implementiert werden mit Hilfe von JLex
(ein Generator für lexikalische Analysatoren), Cup (ein Parsergenerator)
und einigen zur Verfügung gestellten Klassen.
Für die drei Projektteilen sind die
folgenden Abgabefristen einzuhalten:
1. Meilenstein: Codeerzeugung |
Freitag, 18. Mai
2001, 1200 Uhr |
2. Meilenstein: Syntaktische Analyse |
Freitag, 8. Juni
2001, 1200 Uhr |
3. Meilenstein: Semantische Analyse |
Freitag, 29. Juni
2001, 1200 Uhr |
Organization
Über den Mailverteiler compilerbau@cs.uni-sb.de,
in dem alle Hörer der Vorlesung eingetragen sind, können Fragen
gestellt und diskutiert werden sowie Kommentare und Anregungen gegeben
werden.
Dokumentation
Vorlesungsunterlagen
Folien:
Übungen:
Literatur
-
Wilhelm, Maurer. Übersetzerbau. Springer
Verlag, 1992.
-
Wilhelm, Maurer. Compiler Design. Addison-Wesley
Publishers, Ltd., 1995.
-
Bauer, Hoellerer. Übersetzung objektorientierter
Programmiersprachen, Springer, 1998.
-
Diehl. A Formal Introduction to the Compilation
of Java. Software - Practice and Experience, Wiley, 1998.
-
Aho, Sethi, Ullman. Compilerbau. Teil
1, Teil 2. Addison-Wesley (Deutschland) GmbH, 1997.
-
Meyer, Downing. JAVA Virtual Machine.
O'Reilly Associates, 1997.
-
Flanagan. JAVA in a Nutshell. O'Reilly
Associates, 1997.
Links
This page is maintained
by Marc Langenbach. For
questions and suggestions send email to mlangen@cs.uni-sb.de.
Last updated June 21 2001.