Virtualisierung und Compilation
- Veranstalter: Dr. Oliver Rüthing
- Basismodul (4 SWS)
- Zeit und Ort: wöchentlich jeweils Mittwoch 12.15-13.45 (OH 14, E023) und Freitag 12.15-13.45 Uhr (OH 12, E.003)
- Start: Mittwoch, 18.10. 2023
Kommentar
Compilation hat zum Ziel, sogenannte WAS-Beschreibungen in WIE- Beschreibungen umzuwandeln. Klassisch ist hier das WIE mit direkt auf Maschinen ausführbaren Beschreibungen assoziiert (z.B. Bytecode oder Assembler), und das WAS eine möglichst nutzerfreundliche, typischerweise algorithmische Beschreibung (z.B. in Java). Das zur Compilation duale Konzept (von einer WIE- zu einer WAS-Beschreibung) ist "Virtualisierung". Diese bezeichnet die Abstraktion von technischen Details, wie etwa die einem System zu Grunde liegende Hardware- oder Softwareplattform, hin zu einer benutzernahen, fachlichen Sicht.
Der hier zu überbrückende WAS/WIE-Graben ist in den letzten Jahrzehnten immens gewachsen. Immer höhere Programmiersprachen machten die üblichen WAS-Beschreibungen immer komfortabler. Der Anspruch wächst aber noch weiter: WAS-Beschreibungen in Form von Geschäftsprozessmodellen sollen auch übersetzbar werden. Das wirft die Frage auf, wie die Ebene der System-/Prozessentwicklung so von den Details etwaiger Plattformen abgekoppelt werden kann, dass einerseits eine problem- und zielorientierte Entwicklung/Modellierung, andererseits aber auch immer noch eine automatische Übersetzung in ausführbaren Code möglich ist.
Nach einem Rückblick auf die Techniken des klassischen Compilerbaus werden darüber hinaus gehende Techniken vorgestellt, die es erlauben, ausführbaren Code für immer abstrakter spezifizierte Merkmale und Funktionalitäten zu erzeugen. Dabei nimmt insbesondere das Paradigma der modellbasierten Softwareentwicklung eine zentrale Rolle ein.
Die in der Vorlesung vorgestellten Techniken werden sowohl theoretisch beleuchtet als auch anhand konkreter Anwendungsszenarien im Rahmen der Übungen erprobt. Dazu gehört der Einsatz unterschiedlicher Softwaretools wie beispielsweise ANTLR, Xtext und Cinco in Form kleinerer Praxisprojekte.
Übungen
In den Übungen (2 SWS/ Woche) wird durch konkrete Aufgabenstellungen die Möglichkeit gegeben, das in der Vorlesung "Virtualisierung und Compilation" theoretisch erworbene Wissen anzuwenden und zu festigen. Nähere Informationen hierzu (Ort und Starttermin) werden im Moodle und in der Vorlesung angegeben.
Materialien
Die Materialien (Folien, Übungsaufgaben) sind in einem virtuellen Moodle-Arbeitsraum zur Verfügung gestellt (Einschreibung ausschließlich via LSF möglich).