Programming Languages: Design and Implementation (Wintersemester 2017/2018)
Lecturer:
Prof. Dr. Robert Hirschfeld
(Software-Architekturen)
,
Toni Mattis
(Software-Architekturen)
,
Stefan Ramson
(Software-Architekturen)
,
Patrick Rein
(Software-Architekturen)
General Information
- Weekly Hours: 4
- Credits: 6
- Graded:
yes
- Enrolment Deadline: 27.10.2017
- Teaching Form: Project / Seminar
- Enrolment Type: Compulsory Elective Module
Programs, Module Groups & Modules
- OSIS: Operating Systems & Information Systems Technology
- OSIS: Operating Systems & Information Systems Technology
- SAMT: Software Architecture & Modeling Technology
- SAMT: Software Architecture & Modeling Technology
Description
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.
Requirements
keine
Literature
Weiterführende Literatur wird spezifisch für die jeweiligen Projektthemen im Seminar bekanntgegeben.
Learning
Seminar mit Projektarbeit (Implementierungsleistung)
Examination
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.
Dates
- 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.
Zurück