logo of the SSW institute ;)
Computer Science
System Software

Home

General
Staff
Contact
Partners
Alumni

Research
Areas
Projects
Papers
Books
Reports
Awards

Teaching
Lectures
Exams
B.Projects
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

LVA-NR. Gruppe LVA-Leiter Zeit Raum Punkteliste
338.181 1 Wöß Do 10:15-11:45 K012D Ergebnis vom 3.2.2003
338.182 2 Wöß Do 12:00-13:30 K012D Ergebnis vom 3.2.2003
338.183 3 Rammerstorfer Do 13:45-15:15 K012D Ergebnis vom 3.2.2003

Tutoren

Korrekturrichtlinien

Kürzel Name Foto
CH Clemens Holzmann
CK Christoph Kramesch
HPB Hans-Peter Baumgartner
KBP Kurt Prünner
ML Markus Löberbauer
NP Natalie Pakhomova

Ü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 PkteNote
      21Sehr gut (1)
      18Gut (2)
      15Befriedigend (3)
      12Genügend (4)
      0Nicht 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

Abgabeanleitung

Passwortänderung

Testanleitung

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.)
Ü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

Std KW Datum Ausgabe Abgabe Hinweise, Unterlagen, ...
1 40 3.10. UE 1    
2 41 10.10. UE 2 UE 1  
3 42 17.10.     Folien zu JUnit
4 43 24.10. UE 3 UE 2 Folie zur "Panic Mode"-Implementierung
5 44 31.10.     Folien zur Fehlerbehandlung und LL(1)-Bedingung
6 45 7.11. UE 4 UE 3 Folien zur Symbolliste
7 46 14.11.      
8 47 21.11. UE 5 UE 4 Folien zur Codeerzeugung für Ausdrücke und Zuweisungen
Beispiele zur Codeerzeugung für Ausdrücke und Zuweisungen
9 48 28.11.     Folien zur Codeerzeugung für Sprünge
Folien zur Codeerzeugung für Methoden(-aufrufe)
Beispiele zur Codeerzeugung für Sprünge
10 49 5.12. UE 6 UE 5  
11 50 12.12. UE 7   Beispiele zur Fehlerbehandlung bei LALR-Analyse
--- 51 19.12.     LVA-frei (Weihnachtsferien)
--- 52 26.12.     LVA-frei (Weihnachtsferien)
--- 1 2.1.     LVA-frei (Weihnachtsferien)
12 2 9.1.   UE 6 + 7 Fragestunde: Beispiele zur Fehlerbehandlung bei LALR-Analyse
--- 3 16.1.     VO-Klausur

Downloads

Weitere Informationen:

... zur Vorlesung