Detailseite
Effiziente Übersetzung von Kontrolleffekten
Fachliche Zuordnung
Softwaretechnik und Programmiersprachen
Förderung
Förderung seit 2021
Projektkennung
Deutsche Forschungsgemeinschaft (DFG) - Projektnummer 448316946
In der Geschichte des Programmiersprachendesigns hat die Strukturierung des Kontrollflusses von Programmen schon immer eine entscheidende Rolle gespielt. So hat auch das letzte Jahrzehnt eine Vielzahl fortgeschrittener Kontrollstrukturen hervorgebracht. Beispiele hierfür sind Async/Await, Generatoren, Coroutinen, und Fibers. Diese neue Kontrollstrukturen versprechen Abstraktionen auf einem höheren Level und erlauben es, Programme besser zu strukturieren. Die Implementierung solcher Kontrollstrukturen ist derzeit jedoch unzureichend. Sie werden fest in die Sprache integriert (d.h. sie sind nicht vom Nutzer definierbar), sie lassen sich nicht kombinieren (d.h. Programme, welche verschiedene Abstraktionen nutzen, können nicht zusammen verwendet werden), oder eine Abstraktion kann nicht wiederverwendet werden, um eine andere zu implementieren.Algebraische Effektbehandlung (engl. algebraic effect handlers) erlaubt es uns den zuvor genannten Einschränkungen entgegenzuwirken. Effektbehandlung baut auf einem robusten theoretischen Hintergrund auf. Mit einem statischen Typ- und Effektsystem ausgestattet, begünstigt sie eine modulare Definition von nutzerdefinierbaren Kontrollstrukturen. Bis zum heutigen Tage ist die Abstraktion der Effektbehandlung jedoch mit signifikanten Laufzeitkosten verbunden.Das Ziel des ECCE Projektes (Efficient Compilation of Control Effects) ist es diese Kosten zu entfernen. Im Rahmen des Projektes werden neue Optimierungstechniken zur Übersetzung von Programmen mit Effektbehandlung vor (ahead-of-time) und während (just-in-time) der Programmlaufzeit erarbeitet. Begleitet werden diese Techniken von einem neuen, theoretischen Grundgerüst, welches es erlaubt, die Korrektheit der Optimierungen sicherzustellen. Die Anwendung der neuen Optimierungstechniken wird im Rahmen von existierenden, praktischen Sprachen erprobt werden.Effiziente Effektbehandlung wird es Programmierern ermöglichen, neue allgemeine, sowie domänenspezifische Kontrollabstraktionen zu definieren und gleichzeitig die Performance von Hand optimierter Programme zu erreichen.
DFG-Verfahren
Sachbeihilfen