Lehrveranstaltungshandbuch Compilerbau und Domänenspezifische Sprachen


Verantwortlich: Andreas Schwenk, M.Sc.

Lehrveranstaltung

Befriedigt Modul (MID)

Organisation

Version
erstellt 2018-09-18
VID 1
gültig ab WS 2012/13
gültig bis
Bezeichnung
Lang Compilerbau und Domänenspezifische Sprachen
LVID F07_CBDSL
LVPID (Prüfungsnummer)

Semesterplan (SWS)
Vorlesung 2
Übung (ganzer Kurs) 1
Übung (geteilter Kurs)
Praktikum
Projekt 1
Seminar
Tutorium (freiwillig) 0
Präsenzzeiten
Vorlesung 30
Übung (ganzer Kurs) 15
Übung (geteilter Kurs)
Praktikum
Projekt 15
Seminar
Tutorium (freiwillig) 0
max. Teilnehmerzahl
Übung (ganzer Kurs)
Übung (geteilter Kurs)
Praktikum
Projekt 30
Seminar

Gesamtaufwand: 150

Unterrichtssprache

  • Englisch
  • Deutsch

Niveau

  • Master

Notwendige Voraussetzungen

  • Erweiterte Kenntnisse in mindestens einer imperativen Programmiersprache

Literatur

  • Fowler, Martin: "Domain-specific languages", Pearson Education
  • Aho, Alfred V., Ravi Sethi, and Jeffrey D. Ullman: "Compilers, Principles, Techniques", Addison Wesley
  • Wirth, Niklaus: "Compiler construction", Addison-Wesley

Dozenten

  • Andreas Schwenk, M.Sc.

Wissenschaftliche Mitarbeiter

Zeugnistext

Compilerbau und Domänenspezifische Sprachen

Kompetenznachweis

Form
sMP Regelfall (bei großer Prüfungszahl: sK)

Aufwand [h]
sMP 10

Intervall: 2/Jahr


Lehrveranstaltungselemente

Vorlesung / Übung

Lernziele

Lerninhalte (Kenntnisse)
  • Formale Sprachen
    • Reguläre Sprachen
      • Reguläre Ausdrücke
      • Endliche Automaten
    • Kontextfreie Sprachen
      • Kellerautomaten
      • Backus-Naur-Form
    • Deterministisch kontextfreie Sprachen
    • Chomsky Hierarchie
  • Parsing
    • Top-Down Parsing
      • LL Parser
    • Bottom-Up Parsing
      • LR Parser
      • LALR Parser
    • Parsergeneratoren
  • Compiler Front Ends
    • Lexikalische Analyse
    • Syntaktische Analyse
    • Semantische Analyse
    • Zwischencodeerzeugung
  • Compiler Middle Ends
    • Codeoptimierung
  • Compiler Back Ends
    • Computerarchitekturen
    • Maschinencodeerzeugung
    • Registerbelegung
    • Automatische Parallelisierung
  • Relevante Datenstrukturen
    • Abstrakter Syntaxbaum
    • Symboltabelle
  • Eingebettete domänenspezifische Sprachen
  • Externe domänenspezifische Sprachen
  • Compiler Korrektheit
  • Grundlagen der natürlichen Sprachverarbeitung

Fertigkeiten
  • Theoretische Konzepte verstehen
  • Praktische Problemstellungen mittels Toolchains aus dem Kontext des Compilerbaus lösen
    • GNU Autotools
    • GNU Compiler-Collection (GCC)
    • Clang
    • LLVM Backend
    • Flex
    • GNU Bison
  • Eigenschaften von natürlichen und formalen Sprachen unterscheiden
  • Domänenspezifische Sprachen entwerfen
    • Aufwand und Ertrag der Erstellung domänenspezifischer Sprachen bewerten
    • unterliegende Domäne ontologisch auffassen
    • Sprachdokumentationen formulieren
    • Ausdrucksstärke von Sprachen bewerten
  • Domänenspezifische Sprachen implementieren
    • Entwurfsmuster anwenden
    • Language Workbenches erzeugen
    • Überprüfung der Sprachspezifikation auf Korrektheit

Begleitmaterial

  • elektronische Vortragsfolien zur Vorlesung
  • elektronische Übungsaufgabensammlung
  • elektronische Entwicklungswerkzeuge; als virtuelle Maschine bereitgestellt
  • elektronische Tutorials für Selbststudium
  • Quizfragen zur Überprüfung des Wissensstands

Besondere Voraussetzungen

  • keine

Besondere Literatur

  • keine

Besonderer Kompetenznachweis

Form
bK 2-3 eTests je 20min (je 1x wiederholbar)
bÜA Präsenzübung und Selbstlernaufgaben

Beitrag zum LV-Ergebnis
bK Voraussetzung für bPA
bÜA unbenotet

Intervall: 1/Jahr

Projekt

Lernziele

Fertigkeiten
  • Entwurf und Implementation einer neuen domänenspezifischen Sprache
    • Anforderungen formulieren
    • Testprogramme definieren
    • Parser implementieren
    • Integration eines Frameworks aus der Zieldomäne bzw. Codegenerierung umsetzen
    • Verifikation; z.B. unterstützt durch Hamcrest
  • Präsentation einer wissenschaftlichen Publikation aus dem Kontext der Lehrveranstaltung
    • forschungsnahe Fachliteratur verstehen
    • komplexe Sachverhalte didaktisch aufbereiten

Handlungskompetenz demonstrieren
  • komplexe Aufgaben im Team bewältigen
  • Präsentation und Verteidigung von Projektergebnissen

Begleitmaterial

  • elektronische Projektaufgabe
  • elektronische Entwicklungswerkzeuge
  • Tutorials

Besondere Voraussetzungen

  • keine

Besondere Literatur

  • Onlinedokumentation zu den eingesetzten Tools; insbesondere zu Eclipse Xtext

Besonderer Kompetenznachweis

Form
bPA 3 Präsenztermine
sMB 15min Ergebnispräsentation zu bPA; 8min Präsentation Paper

Beitrag zum LV-Ergebnis
bPA Testat
sMB zu bPA

Intervall: 1/Jahr

Diese Seite läuft auf FoswikiDas Urheberrecht © liegt bei den mitwirkenden Autoren. Alle Inhalte dieser Kollaborations-Plattform sind Eigentum der Autoren.
Ideen, Anfragen oder Probleme bezüglich Foswiki? Feedback senden