Home
General
Staff
Contact
Partners
Alumni
Research
Areas
Projects
Papers
Books
Reports
Awards
Teaching
Lectures
Exams
B.Theses
M.Theses
PhD Theses
Go Abroad
Misc
Talks
Library
Gallery
Links
Search
Webmaster
|
Übungen zu Übersetzerbau
In den Übungen wird ein vollständiger Übersetzer für eine Java-ähnliche Programmiersprache (MicroJava) implementiert. Die Übungen 2 bis 6 bauen aufeinander auf, sodass am Ende des Semesters ein vollständiger Übersetzer vorliegt.
Beginn: Do, 3.10.2002
LVA-Leiter
Tutoren
Übungsmodus
- Es gibt sieben (7) Übungen.
- Die ersten sechs (6) davon sind obligatorisch!!!
- Nur die siebte Übung ist optional.
- Achtung! Abschreiben und abschreiben lassen ist daher besonders gefährlich.
Abgeschriebene Übungen werden bei allen Beteiligten NICHT gewertet. Bei den ersten 6 Übungen resultiert das sofort in einem negativen Schein!
- Pro Übung können maximal 24 Punkte erreicht werden.
- Übungsabgabe erfolgt in unregelmässigen Abständen jeweils bis Donnerstag, 8:15.
- Notenschlüssel (wenn die ersten 6 Übungen gewertet wurden):
ab Pkte | Note |
21 | Sehr gut (1) |
18 | Gut (2) |
15 | Befriedigend (3) |
12 | Genügend (4) |
0 | Nicht genügend (5) |
Der Punktedurchschnitt, der die Gesamtnote bestimmt, wird aus den besten sechs (6) Ergebnissen berechnet.
- Ab zwei abgegebenen Übungen wird ein Schein ausgestellt (positiv oder negativ).
Übungen
Angabe |
Ausgabe | letzter Abgabetermin |
Stoff (Bearbeitungszeit) |
Hinweise, Downloads, ... |
Übung 1 |
3.10. | 10.10. |
Grundbegriffe (1 Wo.) |
- ad Aufgabe 1 a):
- Es soll ein Satz der Sprache MicroJava gebildet werden, d.h.
das Ergebnis soll nur Terminalsymbole und keine Nonterminalsymbole
enthalten. Daher muss auch das NTS
Expr durch
(möglichst wenige) Terminalsymbole ersetzt werden.
- Das Ergebnis muss nur syntaktisch (nicht semantisch) korrekt sein.
(Wer es auch semantisch korrekt macht, wird auch nicht bestraft. :-> )
|
Übung 2 |
10.10. | 24.10. |
Lexikalische Analyse (2 Wo.) |
|
Übung 3 |
24.10. | 7.11. |
Syntaxanalyse (2 Wo.) |
- vorgegebene Dateien:
Klasse Token , Gerüst für Klasse
Scanner , Gerüst für Klasse
Parser , Testklassen, Compilerklase,
MicroJava-TestProgramme
- Hinweis zu Implementierung der "Panic Mode"-Fehlerbehandlung
(siehe Folie)
|
Übung 4 |
7.11. | 21.11. |
Symbolliste & Fehlerbehandlung (2 Wo.) |
- vorgegebene Dateien:
Klasse Token , Gerüst für Klasse
Scanner (verwendet Parser.Errors), Gerüst für
Klasse Parser (mit Parser.Errors), Testklassen,
Compilerklasse (verwendet Parser.Errors)
- Hinweise zur UE 4
|
Übung 5 |
21.11. | 5.12. |
Codeerzeugung - Teil 1 (2 Wo.) |
- vorgegebene Dateien:
NEW: Klassen Struct ,
Item , Gerüst für Klasse Code ,
Testklassen (TestByteArrayOutputStream ,
CodeTest ), Compilerklasse, Klasse Decoder
- Übersicht: MicroJava
Maschinenbefehle
- MicroJava VM (neue Version: einfacher (nur
eine Javadatei
Run.java ), bessere Debug-Ausgabe (Befehl,
Parameter, Expressionstack), aber kein GUI)
- Hinweise zur UE 5
|
Übung 6 |
5.12. | 9.1.2003 |
Codeerzeugung - Teil 2 (2 Wo.) |
- vorgegebene Dateien:
NEW: Klasse Label ,
Gerüst für Klasse Code (mit Methoden
für Sprünge), Testklassen (vollständige
Codegenerierung), MicroJava-VM (Klasse Run ),
MicroJava-Testprogramme: TestScriptExample.mj ,
TestAllProds.mj , TestProgram.mj
trap -Anweisung:
Bei der Beschreibung der Kontextbedingungen zur MicroJava-Grammatik
(VO-Skript S.11 ff, 5.4) findet man bei der Regel
MethodDecl die folgende Bedingung:
Wenn die Methode eine Funktion ist, muss sie über eine
return -Anweisung verlassen werden (wird zur Laufzeit
geprüft).
Für diese Laufzeitprüfung gibt es die
trap -Anweisung, die so in den Code eingefügt werden
soll, dass sie nur erreicht wird, falls eine Funktion nicht vorzeitig
über eine return -Anweisung verlassen wird.
- hinzugefügt, am 8.1.2003
Fehler in MicroJava-VM (Run.java ):
Bei der Anweisung newarray wird beim Parameterwert
1 ein Byte-Array und bei allen anderen Werten ein
Word-Array. Laut VO-Skript (S. 16 bzw. Folie 6.10) sollte es aber genau
umgekehrt sein. Der Fehler ist in dieser Version
behoben.
|
Übung 7 |
12.12. | 9.1.2003 |
Bottom-Up-Syntaxanalyse (1 Wo.) |
Lösungsvorschlag |
Zeitplan
Downloads
Weitere Informationen:
... zur Vorlesung
|