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. WorkloadLehrtyp
30Vorlesungen
15?bungen
2Prüfungen
Workload Dozentenungebunden
Std. WorkloadLehrtyp
45Veranstaltungsvor-/-nachbereitung
15Literaturstudium
28Prüfungsvorbereitung
15Kleingruppen
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