Systemnahe Programmierung
Dozent: Prof. Dr. Michael Engel
Beschreibung
Die laufzeiteffiziente Ausführung von Software ist auch für Rechnersysteme mit hoher Prozessorleistung und großen Mengen an Hauptspeicher weiterhin relevant, da gleichzeitig die Anforderungen von Software stetig weiter steigen. Gleichzeitig nimmt die Bedeutung anderer, sog. nichtfunktionaler, Codeeigenschaften, wie die sichere, zuverlässige und energieeffiziente Ausführung, immer weiter zu.
Dieses Modul betrachtet diese Aspekte aus Sicht der Übersetzung von in einer Hochsprache geschriebenen Programmen. Im Gegensatz zu gewöhnlichen Kursen, die Übersetzer (Compiler) zum Thema haben, steht hier nicht der Prozess der Syntax- und Semantikanalyse im Vordergrund, sondern vielmehr das sog. Backend von Compilern, also die Komponenten, die für die Generierung und Optimierung von maschinennahem Code zuständig sind.
Ein besonderer Fokus liegt dabei auf der Analyse und Optimierung nichtfunktionaler Eigenschaften in Backend eines Compilers. Im Rahmen der praktischen Übungen zu diesem Modul wird daher erwartet, dass die Studierenden einen Compiler für eine einfache vorgegebene Hochsprache eigenständig in definierten Schritten entwickeln. Diese Entwicklung beinhaltet insbesondere die Realisierung einer speziellen Eigenschaft der Codegenerierung oder -optimierung, die jeder Studierende im Rahmen eines Vortrags bei einem Kolloquium zum Semesterende vorstellt.
Die Vorlesung wird im inverted classroom-Modus angeboten. Hierbei wird erwartet, dass die Studierenden die wöchentlich zur Verfügung gestellten Vorlesungsvideos rechtzeitig vor der in Präsenz stattfindenden Programmier- und Diskussionssitzung anschauen und entsprechende Vorarbeiten dazu vorbereiten. Die Präsenzsitzungen bestehen dann aus einer Kombination von live programming, eigenständigem Lösen von Teilaufgaben und Diskussion auftretender Probleme. Eine regelmäßige Teilnahme an den Präsenzsitzungen und eigenständige erfolgreiche Bearbeitung der jeweiligen Teilaufgaben sowie die abschließende Präsentation ist Voraussetzung für das Bestehen der Portfolioprüfung.
Die Verwendung von Codegenerierungssystemen wie Large Language Models und Agenten im Rahmen dieser Lehrveranstaltung ist strikt untersagt und führt zum Ausschluß von der Lehrveranstaltung.
