Compilerbau

Modulnummer
CS1019
Modulverantwortliche
Michael Jäger
Dozenten
  • Hellwig Geisse
  • Michael Jäger
  • Thomas Letschert
  • Kurzbeschreibung
    Die Veranstaltung vermittelt wichtige Konzepte moderner Programmiersprachen und der Entwicklung von Compilern unter Verwendung von Compilergeneratoren.
    Qualifikations- und Lernziele

    Wichtige Programmiersprachen-Konzepte verstehen.
    Aufbau und Funktion von Compilern verstehen. Formale Sprachdefinitionen verstehen und selbst entwickeln. Compilerbau-Werkzeuge nutzen und Bezug zu Automatentheorie verstehen. Einfache Sprachen implementieren. Komplexe Datenstrukturen verarbeiten. Entwurfsmuster anwenden. Maschinenprogramme verstehen und erzeugen. Ein komplexes Projekt organisieren. Im Team kooperieren.

    Lerninhalte
    • Lexikalische, syntaktische und semantische Analyse: Theoretisches Fundament (Automaten, Sprachen, Chomsky-Hierarchie) und Implementierung
    • Wichtige Konzepte moderner Programmiersprachen
    • Scanner- und Parsergeneratoren: Funktion und Anwendung
    • Compilerarchitektur
    • Laufzeit-Organisation
    • Codegenerierung für Stackmaschine und einfache RISC-Plattform
    Moduldauer (Semester)
    1
    Unterrichtssprache
    Deutsch
    Gesamtaufwand
    6 CrP; 180 Stunden, davon etwa 90 Stunden Präsenzzeit.
    Semesterwochenstunden
    6
    Lernformen

    Vorlesung 4 SWS, Praktikum 2 SWS

    Geprüfte Leistung

    Prüfungsvorleistung: Projektarbeit

    Prüfungsleistung: Klausur oder mündliche Prüfung (Art des Leistungsnachweises wird den Studierenden rechtzeitig und in geeigneter Weise bekannt gegeben)

    Bewertungsstandard

    Bewertung der Prüfungsleistung nach § 9 der Prüfungsordnung (Teil I)

    Häufigkeit des Angebots
    Jedes Semester
    Literatur
    • J. Mitchell: Concepts in Programming Languages Cambridge University Press
    • Ullman, Lam, Sethi, Aho: Compiler: Prinzipien, Techniken und Werkzeuge Pearson Studium – IT
    • W. Appel: Modern Compiler Implementation in Java Cambridge University Press
    • D. Grune, H. E. Bal, J. H. Jacobs, K. G. Langendoen: Modern Compiler Design John Wiley
    Voraussetzung für Module