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.

Unsere Webseite verwendet Cookies. Diese haben zwei Funktionen: Zum einen sind sie erforderlich für die grundlegende Funktionalität unserer Website. Zum anderen können wir mit Hilfe der Cookies unsere Inhalte für Sie immer weiter verbessern. Hierzu werden pseudonymisierte Daten von Website-Besuchern gesammelt und ausgewertet. Das Einverständnis in die Verwendung der technisch nicht notwendigen Cookies können Sie jeder Zeit wiederrufen. Weitere Informationen erhalten Sie auf unseren Seiten zum Datenschutz.

Erforderlich

Diese Cookies werden für eine reibungslose Funktion unserer Website benötigt.

Statistik

Für den Zweck der Statistik betreiben wir die Plattform Matomo, auf der mittels pseudonymisierter Daten von Websitenutzern der Nutzerfluss analysiert und beurteilt werden kann. Dies gibt uns die Möglichkeit Websiteinhalte zu optimieren.

Name Zweck Ablauf Typ Anbieter
_pk_id Wird verwendet, um ein paar Details über den Benutzer wie die eindeutige Besucher-ID zu speichern. 13 Monate HTML Matomo
_pk_ref Wird benutzt, um die Informationen der Herkunftswebsite des Benutzers zu speichern. 6 Monate HTML Matomo
_pk_ses Kurzzeitiges Cookie, um vorübergehende Daten des Besuchs zu speichern. 30 Minuten HTML Matomo