Software Language Engineering: Definition, Compilation, Interpretation, Transformation (Sommersemester 2022)
Dozent:
Prof. Dr. Holger Giese
(Systemanalyse und Modellierung)
,
Matthias Barkowsky
(Systemanalyse und Modellierung)
,
Mustafa Ghani
(Systemanalyse und Modellierung)
Allgemeine Information
- Semesterwochenstunden: 4
- ECTS: 6
- Benotet:
Ja
- Einschreibefrist: 01.04.2022 - 30.04.2022
- Prüfungszeitpunkt §9 (4) BAMA-O: 26.07.2022
- Lehrform: Vorlesung / Übung
- Belegungsart: Wahlpflichtmodul
- Lehrsprache: Deutsch
Studiengänge, Modulgruppen & Module
- SAMT: Software Architecture & Modeling Technology
- SAMT: Software Architecture & Modeling Technology
Beschreibung
Die Entwicklung der Informatik ist geprägt durch die Entwicklung von Sprachen für die Beschreibung von Software. Dies spiegelt sich heutzutage in Programmiersprachen, domänenspezifischen Sprachen wie z.B. SQL oder auch Modellierungssprachen wie z.B. UML wider. Alle diese Ansätze erlauben es, die Lösung auf einem höheren Abstraktionsniveau zu beschreiben. Viele der dadurch notwendigen Konkretisierungsschritte bei der Softwareentwicklung können automatisiert werden. Dies ermöglicht häufig eine Reduktion der Entwicklungszeit, eine Kostensenkung durch die generative Erzeugung von weiten Teilen der Anwendung sowie vereinfachte Wiederverwendung. Außerdem kann die resultierende Software-Qualität erhöht werden.
Diese Vorlesung betrachtet den Stand der Technik für Software Sprachen bzgl. der Definition der Sprachen, Verarbeitung der Sprache für automatisierte Schritte und die Ausführung der Sprachen durch Compilierung und/oder Interpretation. Neben dem Bau von Compilern und Interpretern werden dabei auch domänenspezifische Sprachen (domain-specific languages (DSL)) und die modellgetriebene Softwareentwicklung (model-driven software engineering (MDSE)) betrachtet. Dabei werden die den verschiedenen Ansätzen zugrundeliegenden Konzepten und Techniken eingeführt und in einem Projekt praktisch erprobt.
Voraussetzungen
Grundlagenwissen zu Programmiersprachen, wie durch die Lehrveranstaltungen Einführung in die Programmiertechnik I und II vermittelt, und Modellierung von Software, wie durch die Lehrveranstaltungen Modellierung I und II oder Modellierungssprachen und Formalismen vermittelt, wird vorausgesetzt.
Literatur
Die Folien zur Vorlesung wie auch eine Literaturliste werden im internen Bereich zur Verfügung gestellt.
Lern- und Lehrformen
Die Vorlesung wird begleitet von einem Projekt, das die Bearbeitung von einführenden Übungsaufgaben beinhaltet.
Leistungserfassung
Klausur (60-90 Min.)
Zulassungsvoraussetzung zur Klausur ist die erfolgreiche Bearbeitung eines Projektes während des Semesters. Das Projekt beinhaltet eine Einführungsphase, in der zunächst einige Übungsaufgaben bearbeitet werden.
Termine
Vorlesung
Die erste Vorlesung findet am 26.04.2022 (Dienstag) von 09:15-10:45 statt. Die Vorlesung findet remote und in Raum A-1.1 statt. Eine Einladung zur Teilnahme via Zoom wird rechtzeitig im HPI-GitLab unter https://gitlab.hpi.de/matthias.barkowsky/2022-software-language-engineering veröffentlicht.
Der genaue Rahmen der späteren Veranstaltungen wird in Abhängigkeit von der abschließenden Anzahl an Teilnehmenden ausgestaltet.
In der zweiten Semesterhälfte wird ein Teil der Vorlesungen zugunsten der Übungen bzw. Projekte ausfallen. Besondere Termine sowie Vorlesungsausfälle werden rechtzeitig bekannt gegeben.
Zurück