Uni Wien:Übersetzerbau LU (Mehofer)

Aus VoWi
Wechseln zu: Navigation, Suche
In der Studienplanänderung 2006 der Technischen Universität Wien wurde "Übersetzerbau LU" aus dem Studienplan gestrichen.
  • Studierende der TU, die im WS06 oder später mit ihrem Studium begonnen haben, können diese LVA nicht mehr für ihr Studium als Pflicht oder Wahlfach verwenden.
  • Studierende der TU, die bereits vor dem WS06 inskribiert waren, können, sofern sie für diese LVA ein Zeugnis haben, dieses Fach gemäß den Übergangsbestimmungen verwenden.
    • Ist dieses Fach eine Vorlesung, so muss es (wie immer) noch 3 weitere Semester Prüfungen geben.
  • Studierende der Uni Wien haben einen eigenen Banner mit Hinweisen ueber oder unter diesem Banner.

Für Details siehe bitte auch das FAQ Der Übergang vom alten auf den neuen Studienplan (2006).


Diese LVA wird nicht mehr von dieser Person angeboten, ist ausgelaufen, oder läuft aus und befindet sich daher nur noch zu historischen Zwecken im VoWi. Eventuell findest du über dieser Meldung noch andere Vortragende, oder Links für dieselbe LVA.


Daten[Bearbeiten]

Die LVA gibs auch an der TU: Übersetzerbau LU (Ertl)

Inhalt[Bearbeiten]

Ziel der Lehrveranstaltung ist die praxisnahe Entwicklung eines Compilers für eine einfache Sprache. Schritt für Schritt werden die einzelnen Phasen der Compilerentwicklung in Form von Beispielen durchgenomen

  • lexikalische Analyse
  • Grammatik
  • semantische Analyse
  • Codeerzeugung

Ablauf[Bearbeiten]

Um an diese LVA absolvieren zu können, muss der Studierende an der Uni Wien mitbelegt oder inskribiert sein. In Form von ca. all 2wöchentliche Abgaben wird der jeweilge Arbeitsschritt anhand von Testfällen auf Fehlerhaftigkeit überprüft. Die Abgaben werden unter Anwesenheitspflicht während der UE LVA-Einheit abgehalten.

Die Aufgaben[Bearbeiten]

  • Lexialische Analyse: Zur Verfügung stehen das unter *nix allbekannte tool names "lex" (unter Linux auch als Klon namens flex zu finden. Es wird in den Abgabescripts überprüft ob Fehler der Eingabesprache, welche mit falschen tokens belegt wird auch erkannt werden. Die genaue Definition der Tokens sind in der Angabe auf der LVA Seite zu finden)
  • Grammatik: Als Angabe wird eine Grammatik angegeben welche in kontextfreier Form umgewandelt werden muss um schließlich mit dem *nix tool yacc einen sog. parser zu generieren.
  • Semantik: Anders als auf der korrespondierenden LVA auf der TU-Wien darf hier kein ox verwendet werden. die Semantik wird als Erweiterung des mit yacc zu erstellenden Parsers durchgeführt. Gute C Kenntnisse sowie implementieren und verwenden von Datenstrukturen (Listen) sind hier vorteilhaft.
  • Codeerzeugung: Der nun richtig geparste und semantisch überprüfte Quellcode der Eingabesprache soll nun in Asssembler übersetzt werden.

Entweder hat man hier die Möglichkeit auf einer virtuellen Maschine (vmsim) einen Pseudo-Assembler zu schreiben oder man sucht sich die etwas kompliziertere Variante des x86-Assemblers asm aus.

In Form eines Abschlussabgabegespräch wird dann der Compiler auf Richtigkeit getestet.

Empfohlene Vorkenntnisse[Bearbeiten]

Gute C Kenntnisse unter *nix, sowie allg. prozedurales programmieren können vorteilhaft sein. Die LVA Theoretische Informatik, könnte das Verständnis von regulären Ausdrücken und Grammatiken unterstützen. x86 Assemblerkenntnisse schaden sicher nicht für die letzte Abgabe.

LVAs:

Literatur[Bearbeiten]

Die Unterlagen werden rechtzeitig auf der LVA Seite online zur Verfügung gestellt. Wichtig sind v.a. die GNU Dokumentationen zu yacc und bison.

Das Buch von Kenneth C. Louden - Compiler Construction enthält _sehr_ ähnliche Beispiele.

Übungen[Bearbeiten]

Diese LVA wird als 3stündige Laborübung angeboten. Es gibt Laborräume des Instituts, allerdings _kein_ Support bzgl. Tutoren. Implementiert und abgegeben wird auf einen Sun Solaris Server.

Prüfung[Bearbeiten]

Offiziell findet nach der letzten Abgabe noch eine schriftliche Prüfung statt. Bei geringer Teilnehmeranzahl wird jedoch meist nur nach einem mündlichem Abgabegespräch benotet.

Zeitaufwand[Bearbeiten]

Für die einzelnen Beispiele sollte man sich genügend Zeit nehmen. Es ist empfehlenswert online auf dem Server zu arbeiten, da oft "aktueller" lokaler C Code auf dem etwas älterem C Compiler auf dem Server nicht kompiliert. Wer noch nie mit C etwas zu tun gehabt hat, sollte sich auch Tutorials sowie Fachklektüre für die Programmiersprache C reinschnuppern.

Wo gibts Mitschriften, Skripten, Folien...[Bearbeiten]

Auf der LVA-Homepage

Aehnliche und Verwandte LVA's[Bearbeiten]


Übersetzerbau VO: Die zur LU gehoerende Vorlesung.
Abstrakte Maschinen VO: Eine sehr anspruchsvolle Vorlesung ueber Virtuelle Maschinen (Bsp.: Java VM). Baut sehr stark auf dem Stoff aus Compilerbau auf.
Optimierende Übersetzer VU