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 der Stoff der Vorlesung vertieft, d.h. sie können auch
als gute (notwendige!) Vorbereitung für die Vorlesungsklausur gesehen werden.
Es 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, 9.10.2003
Es gibt im KUSSS ein Diskussionsform für die Übersetzerbau-Übungen.
LVA-Leiter
LVA-NR. | Gruppe |
LVA-Leiter |
Zeit | Raum |
Ergebnis |
338.181 | 1 |
Wöß |
Do 10:15 - 11:45 | K 012 D |
NEU!
G1 & G2
|
338.182 | 2 |
Wöß |
Do 12:00 - 13:30 | K 012 D |
338.183 | 3 |
Rammerstorfer |
Do 17:15 - 18:45 | T 857 |
|
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!
-
Aufgrund von Einsparungsmaßnahmen können nicht mehr alle UEs
von den Tutoren korrigiert werden. Es wird folgendes Schema angewandt:
Die UEs 1, 6, 7 werden komplett korrigiert.
Hier können pro Übung maximal 24 Punkte erreicht werden.
Von den UEs 2-5 werden nach dem Zufallsprinzip
Stichproben korrigiert. Diese werden auch mit
maximal 24 Punkten bewertet und von jedem Studenten wird mindestens eine
der vier UEs korrigiert.
Bei den nicht korrigierten UEs werden sog.
Abgabechecks durchgeführt und Bonuspunkte
vergeben (siehe Korrekturrichtlinien).
-
Ü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
folgendermaßen berechnet:
Punkteschnitt = |
Summe der korrigierten Punkte + Summe der Bonuspunkte
|
----------------------------------------------------- |
Anzahl der korrigierten UEs |
-
Ab zwei abgegebenen Übungen wird ein
Schein ausgestellt (positiv oder negativ).
Übungen
Angabe |
Ausgabe | letzter Abgabetermin |
Stoff (Bearbeitungszeit) |
Hinweise, Downloads, ... |
Übung 1 (als .pdf) |
9.10. | 16.10.2003 |
Grundbegriffe (1 Wo.) |
MicroJava-Grammatik (als .pdf)
|
Übung 2 (als .pdf) |
16.10. | 30.10.2003 |
Lexikalische Analyse (2 Wo.) |
Dateien für UE 2
Achtung! Seit Fr., 17.10.2003, 8:00, ist eine neue Version
der UB-UE2-Angabe.zip -Datei unter diesem Link erreichbar. Die erste
Version war leider veraltet und deshalb funktionierten einige Testfälle nicht.
Achtung! Seit Di., 28.10.2003, 16:20, ist wieder eine neue
Version der UB-UE2-Angabe.zip -Datei unter diesem Link erreichbar.
Die zweite Version hatte gleich mehrere Fehler in der Testmethode
ScannerTest.testInvalidESCsequence .
|
Übung 3 (als .pdf) |
30.10. | 13.11.2003 | Syntaxanalyse (2 Wo.) |
Dateien für UE 3
|
Übung 4 (als .pdf) |
13.11. | 27.11.2003 |
Symbolliste & Fehlerbehandlung (2 Wo.) |
Dateien für UE 4
Hinweis! In der Methode Scanner.error
fehlt ein else , sodass es bei den Testläufen ev. zu
einer NullPointerException in Parser.Errors.synError
kommen kann.
Die Methode Scanner.error sollte besser so lauten:
public static void error (String message) {
if (out != null) out.println(...);
else Parser.Errors.synError(message);
}
Hinweis! Damit es bei Programmen, wo gleich das erste Zeichen
ungültig ist (INVALID_CHAR ), nicht zum Programmabstutz kommt
(NullPointerException ), ist es notwendig bereits
vor dem ersten Aufruf von scan() entsprechende
Initialisierungen vorzunehmen.
Achtung! Seit Mo., 24.11.2003, 12:45, ist wieder eine neue
Version der UB-UE4-Angabe.zip -Datei unter diesem Link erreichbar.
Die erste Version erwartete 2 Fehler zuwenig in der Testmethode
ParserTest.testAllProdsWithErrors (Details siehe Diskussionsforum im KUSSS,
Thema "ue4, testAllProdsWithErrors").
|
Übung 5 (als .pdf) |
27.11. | Montag 15.12.2003 12:00 |
Codeerzeugung - Teil 1 (2 Wo.) |
Hinweis! Auf vielseitigen Wunsch der Studenten (wegen Klausuren)
wurde die Abgabe der UE 5 bis Montag, 15.12.2003, 12:00 (Mittag) verlängert.
Dateien für UE 5
MicroJava-OpCodes (auf einer Seite zusammengefasst)
Hinweis! zu Java-Compilerfehlermeldung:
ssw\mj\test\TestByteArrayOutputStream.java:89:
warning: as of release 1.4, assert is a keyword, and may not be used as an identifier
assert width >= 0;
Seit Java 1.4 gibt es ein Schlüsselwort assert , um Zusicherungen
zu implementieren, die zur Laufzeit ein- bzw. ausgeschalten werden können.
Um zu äteren Java-Versionen kompatibel zu bleiben, muss man z.Z. noch die
Compiler-Option -source 1.4 setzen.
Da aber dieses assert in der Angabe für die UE 5 nur ein einziges
Mal vorkommt, gibt es seit Mo., 1.12.2003, 10:00, eine neue Version
der UB-UE5-Angabe.zip , die kein assert mehr verwendet
(einzige Änderung bei Methode TestByteArrayOutputStream.int2Str )
|
Übung 6 (als .pdf) |
11.12. | 8.1.2004 |
Codeerzeugung - Teil 2 (~4 Wo.) |
Dateien für UE 6,
TestProgram.mj
|
Übung 7 (als .pdf) |
8.1. | 22.1.2004 |
Bottom-Up-Syntaxanalyse (2 Wo.) |
NEU! Lösungsvorschlag
|
Zeitplan
Std | KW | Datum |
Ausgabe | Abgabe |
Hinweise, Unterlagen, ... |
--- | 40 | 2.10. |
| |
|
1 | 41 | 9.10. |
UE 1 | |
|
2 | 42 | 16.10. |
UE 2 | UE 1 |
Folien |
3 | 43 | 23.10. |
| |
Folien (JUnit) |
4 | 44 | 30.10. |
UE 3 | UE 2 |
Folien |
5 | 45 | 6.11. |
| |
Folien |
6 | 46 | 13.11. |
UE 4 | UE 3 |
Folien |
7 | 47 | 20.11. |
| |
Folien |
8 | 48 | 27.11. |
UE 5 | UE 4 |
Da die VO heute ausfällt, es aber trotzdem neue UE-Angaben gibt,
wird die 8. UE-Std sowohl diese als auch nächste Woche abgehalten.
Es reicht natürlich aus nur an einem der beiden Tage die UE zu besuchen.
Diesmal stehen alle angebotenen Termin allen Studenten offen (unabhängig
von der eigentlichen Gruppenzuteilung).
- 8:30-10:00: keine VO
- 10:15-11:45: keine UE
- 12:00-13:30: 8. UE-Std in HF 9901
- 17:15-18:45: 8. UE-Std in T 857
Folien
|
49 | 4.12. |
| |
- 8:30-10:00: VO findet wie üblich statt
- 10:15-11:45: 8. UE-Std in K 033 C
- 12:00-13:30: keine UE
- 17:15-18:45: keine UE
|
9 | 50 | 11.12. |
UE 6 | |
Folien
|
--- | 51 | 18.12. |
|
UE 5 Montag, 15.12.2003, 12:00 |
LVA-frei (Weihnachtsferien) |
--- | 52 | 25.12. |
| |
LVA-frei (Weihnachtsferien) |
--- | 1 | 1.1. |
| |
LVA-frei (Weihnachtsferien) |
10 | 2 | 8.1. |
UE 7 | UE 6 |
|
11 | 3 | 15.1. |
| |
|
12 | 4 | 22.1. |
| UE 7 |
|
--- | 5 | 29.1. |
| |
VO-Klausur |
Downloads
Weitere Informationen:
|