Hasso-Plattner-Institut
Hasso-Plattner-Institut
  
Login
  • de
 

Programming Languages: Design and Implementation (Wintersemester 2017/2018)

Dozent: Prof. Dr. Robert Hirschfeld (Software-Architekturen) , Toni Mattis (Software-Architekturen) , Johannes Henning (Software-Architekturen) , Stefan Ramson (Software-Architekturen) , Patrick Rein (Software-Architekturen)

Beschreibung

Bei der Entwicklung komplexer Systeme stoßen Programmierer regelmäßig auf Unzulänglichkeiten der gewählten Programmiersprache. So kommt es, dass bestimmte Lösungen für eine gegebene Anwendung mit Hilfe jener Sprache nicht modular umgesetzt werden können, dass die Bibliotheken der Sprache bestimmte Funktionen nicht kompakt ausdrücken können oder sogar dass bewährte Konstrukte aus anderen Sprachen überhaupt nicht zur Verfügung stehen. Im Endeffekt beeinträchtigt dies die Wartbarkeit und Erweiterbarkeit der Systeme. Diese Beobachtungen führen häufig zu Entwurfsmustern, Richtlinien oder gar neuen Programmierkonzepten und Spracherweiterungen.

Im Rahmen dieser Veranstaltung erfahren die Teilnehmer einen Querschnitt durch verschiedene Programmiersprachen, -konzepte, -umgebungen.

Im Verlauf des Seminars erarbeiten die Teilnehmer unter Anleitung einen funktionsfähigen Softwareprototypen, der jeweils eines der Sprachkonzepte unterstützt, wobei Werkzeuge zum Implementieren und Erweitern von Programmiersprachen eingesetzt werden. Die so erlernten Techniken versetzen die Teilnehmer in die Lage, selbständig einfache Programmiersprachen und -konzepte zu implementieren.

Voraussetzungen

keine

Literatur

Weiterführende Literatur wird spezifisch für die jeweiligen Projektthemen im Seminar bekanntgegeben.

Lern- und Lehrformen

Seminar mit Projektarbeit (Implementierungsleistung)

Leistungserfassung

Vorträge, Diskussionen, Implementierung und Dokumentation werden mit sechs benoteten Leistungspunkten angerechnet.

Jeder Seminarteilnehmer bearbeitet eines der gestellten Seminarthemen vertiefend.
Das bearbeitete Thema wird in zwei Vorträgen von je 15 - 30 Minuten Dauer präsentiert, an die sich jeweils eine Diskussion anschließt.

Der erste Vortrag soll das vertiefend bearbeitete Konzept/Thema beschreiben und einordnen. Der zweite Vortrag soll Design- und Implementierungsentscheidungen sowie eine aufgezeichnete oder Live-Vorführung (Demo) der erstellten Implementierung beinhalten.

Ferner sind Architektur, wichtige Entwurfsentscheidungen und -abwägungen und Anwendungsszenarien, insofern sie nicht Bestandteil der Vorträge waren, in geeigneter Form am Quelltext, durch ausführbare Codebeispiele, oder in einem separaten Dokument darzulegen.

Spätestens eine Woche vor dem jeweiligen Vortragstermin bespricht jeder Teilnehmer eine Vorversion seiner Vortragsunterlagen mit einem der Betreuer. Um einen Termin für diese Vorbesprechung kümmern sich die Teilnehmer selbstständig. Die Vortragsunterlagen sind einen Tag vor dem Vortrag per E-Mail einzureichen. Sie bestehen für beide Vorträge aus

  • den Dokumentquellen der im Vortrag verwendeten Präsentationsunterlagen,
  • einer PDF-Version derselben

und für den zweiten Vortrag zusätzlich aus

  • dem in der Demo verwendeten Quelltext/Prototypen,
  • einem Videoclip der Demo,
  • einer Installationsbeschreibung, und
  • einem Demo-Script.

In Vortragsfolien ist auf die korrekte Angabe aller verwendeter Quellen zu achten.

Die endgültige Version der Implementierung und Dokumentation ist spätestens am Ende des Vorlesungszeitraums per  E-Mail abzugeben und besteht aus:

  • Quelltext
  • Installationsbeschreibung
  • ggf. zusätzlich angefertigten Dateien zur Dokumentation

   
Alle im Rahmen des Seminars erstellten Dokumente und Quelltexte sollten unter der MIT-Lizenz und, falls notwendig, mit einer den verwendeten Systemen kompatiblen Lizenz bereitgestellt werden. Wird das Einreichen verlangter Dokumente bis zum jeweils angegebenen Datum versäumt, so gelten diese als nicht eingereicht, was zur Abwertung der Gesamtleistung führt.

Termine

  • 17.10.:

    Themenvorstellung

  • 24.10.:

    Themenvergabe

  • 07.11.:

    Einführung Parsing, Reflection, und Abstract Syntax Trees

  • 14.11.:

    Einführung in Interpreterbau

  • 21.11.:

    Einführung zu Was sind Typen?

  • 28.11.:

    Einführung zu Optimierung von Ausführungsumgebungen

Termine für Zwischenvorträge und Endvorträge abhängig von Teilnehmerzahl.

Allgemeine Information

  • Semesterwochenstunden : 4
  • ECTS : 6
  • Benotet : Ja
  • Einschreibefrist : 27.10.2017
  • Programm : IT-Systems Engineering BA
  • Lehrform : P/S
  • Belegungsart : Wahl

Module

  • OSIS-Grundlagen
  • OSIS-Vertiefung
  • SAMT-Grundlagen
  • SAMT-Vertiefung

Zurück