Compilerbau
- Fakultät
 Ingenieurwissenschaften und Informatik
- Version
 Version 6.0 vom 15.08.2019
- Modulkennung
 11M0662
- Modulname (englisch)
 Compiler Construction
- Studiengänge mit diesem Modul
 Informatik - Verteilte und Mobile Anwendungen (M.Sc.)
- Niveaustufe
 4
- Kurzbeschreibung
 Die Konstruktion von Übersetzern (Compilern) ist eine alte und reife, aber immer noch aktuelle Disziplin der Informatik. Sie verbindet wie kaum eine andere Disziplin theoretische, praktische und technische Informatik. Formale Sprachen und Automatentheorie sind ebenso wichtig wie die Architektur der Zielprozessoren und Fragen des Entwurfs eines großen Software-Systems.Compilerbau-Techniken und -Werkzeuge sind auch dann nützlich, wenn man keinen vollständigen Übersetzer entwickeln will - beispielsweise zum Parsen unterschiedlichster Text- und Dateiformate, bei der Programmparallelisierung, -analyse und -optimierung oder bei der Entwicklung domain-spezifischer Sprachen im Software- und Hardware-Bereich.
- Lehrinhalte
 1 Grundlagen
2 Lexikalische Analyse
3 Syntaktische Analyse
4 Semantische Analyse
5 Zwischencode-Erzeugung
6 Code-Generierung
7 Weiterführende Themen
- Lernergebnisse / Kompetenzziele
 Wissensverbreiterung
Die Studierenden erhalten in diesem Modul ein breites Wissen über die Konstruktion von Compilern. Sie haben einen Überblick über die gesamte Übersetzung von der lexikalischen Analyse bis zur Codegenerierung.
Wissensvertiefung
Die Studierenden vertiefen in diesem Modul ihr Wissen über Programmiersprachen, formale Sprachen und Prozessor-Befehlssätze. Sie erhalten ein tiefergehendes Verständnis über die Zusammenhänge zwischen Sprachen (Hochsprachen, Assemblersprachen), Automatentheorie und Compilern.
Können - instrumentale Kompetenz
Die Studierenden können Compiler entwerfen und Werkzeuge zur Automatisierung dieses Entwurfs einsetzen.
Können - kommunikative Kompetenz
Die Studierenden, die dieses Modul erfolgreich studiert haben, können Compiler und andere komplexe Software-Systeme in Teamarbeit systematisch spezifizieren, analysieren und implementieren sowie notwendige Werkzeuge auswählen.
Können - systemische Kompetenz
Die Studierenden kennen verschiedene Klassen formaler Sprachen und die zugehörigen Verfahren und Algorithmen. Diese können zur Entwicklung von Compilern oder anderen Programmen zur Analyse und Verarbeitung textueller Daten eingesetzt werden.
- Lehr-/Lernmethoden
 Die Veranstaltung besteht aus einer Vorlesung und Übungen. Teile eines Compilers werden in Programmierübungen implementiert.
- Empfohlene Vorkenntnisse
 Programmierung 1 und 2, Software Engineering, elementare Grundlagen der Rechnerarchitektur und der Theoretischen Informatik.
- Modulpromotor
 Weinhardt, Markus
- Lehrende
 Weinhardt, Markus
- Leistungspunkte
 5
- Lehr-/Lernkonzept
 Workload Dozentengebunden Std. Workload Lehrtyp 30 Vorlesungen 15 Übungen 2 Prüfungen Workload Dozentenungebunden Std. Workload Lehrtyp 45 Veranstaltungsvor-/-nachbereitung 15 Literaturstudium 28 Prüfungsvorbereitung 15 Kleingruppen 
- Literatur
 A. V. Aho, M. S. Lam, R. Sethi, J. D. Ullman: "Compilers: Principles, Techniques, and Tools", Addison-Wesley Longman, 2nd ed. 2006A. W. Appel, M. Ginsburg: "Modern Compiler Implementation in C", Cambridge University Press, 2004W. M. Waite, G. Goos: "Compiler Construction", Springer, 1985U. Kastens: "Übersetzerbau", Oldenbourg, 1990
- Prüfungsleistung
 - Mündliche Prüfung
 - Klausur 2-stündig
 - Projektbericht, schriftlich
 
- Unbenotete Prüfungsleistung
 Experimentelle Arbeit
- Bemerkung zur Prüfungsform
 Die Prüfungsform wird vom Dozenten gewählt (Klausur, mündl. Prüfung oder Projektbericht). Für das Praktikum gibt es einen Leistungsnachweis (in Form einer Experimentellen Arbeit).
- Dauer
 1 Semester
- Angebotsfrequenz
 Unregelmäßig
- Lehrsprache
 Deutsch