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 |
Übersetzerbau
Aufgrund der aktuellen Covid-Situation findet die Vorlesung ab sofort nur noch online statt:
https://jku.zoom.us/j/93255090860?pwd=Z2c4TEdPVkRPd0x6QVJ5dXBjWmlWdz09. Die Lehrveranstaltung vermittelt praktische Kenntnisse im Übersetzerbau (Compilerbau). Studierende sollen in die Lage versetzt werden, Compiler für einfache Programmiersprachen, Kommandosprachen und allgemeine strukturierte Eingabeströme zu implementieren. Es werden die wichtigsten Phasen eines Compilers wie lexikalische Analyse, Syntaxanalyse, Semantikverarbeitung und Codeerzeugung behandelt. Darüber hinaus werden Beschreibungstechniken wie attributierte Grammatiken und ihre Verarbeitung durch Compiler-Generatoren erläutert. Die Vorlesung bietet auch eine Einführung in die Theorie der Formalen Sprachen, soweit sie für den Übersetzerbau relevant ist. Übersetzerbau-Kenntnisse sind nicht nur für Compiler-Entwickler wichtig, sondern auch für Anwendungsprogrammierer. In vielen Programmen müssen Parameter, Programmoptionen oder Eingabedateien verarbeitet werden, die syntaktisch strukturiert sind. Für diese Aufgaben sind oft Kenntnisse über Syntaxanalyse oder Symbollistenverwaltung nötig. Die Vorlesung zeigt, wie man solche Aufgaben systematisch löst. Fortgeschrittene Übersetzerbau-Techniken wie Codeerzeugung für Registermaschinen, Codeoptimierung und getrennte Übersetzung werden in einer anschließenden Wahlvorlesung angeboten. Inhalt
1.1 Motivation 1.2 Struktur eines Compilers 1.3 Grammatiken 1.4 Syntaxbaum und Mehrdeutigkeit 1.5 Grammatikklassen nach Chomsky 1.6 Die Sprache MicroJava 2.1 Aufgaben der lexikalischen Analyse 2.2 Reguläre Grammatiken und Endliche Automaten 2.3 Scanner-Implementierung 3.1 Kontextfreie Grammatiken und Kellerautomaten 3.2 Rekursiver Abstieg 3.3 LL(1)-Eigenschaft 3.4 Fehlerbehandlung 4.1 Attributierte Grammatiken (prozedurale Sicht) 4.2 Attributierte Grammatiken nach Knuth 5.1 Überblick 5.2 Objekte 5.3 Scopes 5.4 Typen 5.5 Universum 6.1 Überblick 6.2 Die MicroJava VM 6.3 Codespeicher 6.4 Operanden 6.5 Ausdrücke 6.6 Zuweisungen 6.7 Sprünge und Marken 6.8 Ablaufkontrollstrukturen 6.9 Methoden 7.1 Arbeitsweise eines Bottomup-Parsers 7.2 LR-Grammatiken 7.3 LR-Tabellenerzeugung 7.4 Tabellenverkleinerung 7.5 Semantikanschluss 7.6 LR-Fehlerbehandlung 8.1 Yacc 8.2 Lex 8.3 Coco/R 9.1 Objektorientierung 9.2 Exception Handling 9.3 Überladen von Methoden 9.4 Getrennte Übersetzung DownloadsDie Vorlesungsvideos können nach der jeweiligen Vorlesungsstunde von hier heruntergeladen werden.
PrüfungSchriftliche Klausur (möglicherweise online) am 27.01.2022, 8:30 - 10:00. SkriptDie Folien im PDF-Format sind von der Kusss-Seite dieser LVA herunterladbar. LiteraturHauptsächliche Literatur
|