Compilerbau

Die Studierenden erlernen Prinzipien des Compilerbaus und der Programmiersprachen. Sie lernen den Aufbau eines Compilers und die Phasen der Compilierung kennen. Sie werden befähigt, einfache Compiler selbst zu entwickeln und erwerben praktische Kenntnisse und Fähigkeiten im Umgang mit Programmiersprachen, -systemen und zugehörigen Werkzeugen.

siehe auch Modulbeschreibung.

Aktuelles:

  • Der Termin für die Abschlussklausur steht fest.
    • Die Abschlussklausur findet am Mittwoch, den 19.09.2018 von 11.30 bis 13.00 Uhr im ZHG/HS B statt.

Prüfung

Bei nicht zu großer Teilnehmeranzahl wird eine mündliche Prüfung stattfinden. Die Termine werden dann zu gegebener Zeit im Sekreteriat vereinbart werden können.

Regelmäßige Termine

Die Vorlesung findet beginnend am Freitag, 06.04.2018 statt:

dienstags 11:30-13:00 Uhr  (HG 0.17) und
freitags 9:15-10:45 Uhr (HG 0.17).

Die Übung findet beginnend am Mittwoch, 04.04.2018 statt:

Achtung Raumänderung: mittwochs 13:45-15:15 Uhr (HG 0.19).

Anforderungen

Zum Bestehen des Moduls sind zwei Prüfungsteilleistungen zu erbringen:

  • erfolgreiche Teilnahme am Praxisteil
  • erfolgreiche Teilnahme an einem Prüfungsgespräch

Im Praxisteil wird in Praktikumsgruppen von jeweils 2 bis 3 Teilnehmern ein Compiler entwickelt.

Es gibt auch theoretische Übungsaufgaben sowie Übungsaufgaben zur Programmierung in Haskell, deren Bearbeitung freiwillig ist, aber dringend empfohlen wird.

Einschreibung

Neben der Anmeldung zum Modul ist eine Einschreibung, inklusive Zuordnung zu einer Praktikumsgruppe, erforderlich. Die Einteilung der Praxisgruppen, das Bereitstellen der Übungsblätter, sowie die Abgaben der Übungsblätter werden über die MOODLE-Plattform erfolgen.

Vorlesung

Im Verlauf des Semesters werden hier die aktuellen Vorlesungsmaterialien veröffentlicht:

  • 0 Organisatorisches
  • 1 Sprachen und Compiler
  • Einführung in Haskell
  • 2 Syntax
    • Konzepte und Formalismen
    • Scanner
    • Parsierung (Teil I, Teil II, Teil III)
  • 3 Semantik und semantische Analyse
    • Typklassen
    • Typisierung
    • Namen und Namensanalyse
    • Syntaxgesteuerte Übersetzung / Attributierte Grammatiken
  • 4 Interpretation
    • Grundkonzepte, Lambda-Kalkül
    • Interpretationsfunktionen
    • SECD-Maschine
    • Graphreduktion
  • 5 Codeerzeugung
  • 6 Speichermodell
  • 7 Garbage Collection

Praxisteil

Programmierumgebung

Im Praxisteil wird die Programmiersprache Haskell verwendet. Für die Programmierung sollte die Haskell Platform benutzt werden, welche u.a. den Glasgow Haskell Compiler inklusive der interaktiven Umgebung GHCi, das Haskell-Paketverwaltungstool cabal-install und eine Reihe von Basisbibliotheken enthält.

Kontakt

Mit Fragen und Anregungen wenden Sie sich bitte an Petra Hofstedt oder Sven Löffler.