Detailseite
ALIEN: Abstraktionen, Sprachen und Implementierungstechniken, die die Kluft zwischen Programmier- und Anfragesprachen überwinden
Antragsteller
Professor Dr. Torsten Grust; Professor Dr.-Ing. Klaus Ostermann
Fachliche Zuordnung
Sicherheit und Verlässlichkeit, Betriebs-, Kommunikations- und verteilte Systeme
Softwaretechnik und Programmiersprachen
Softwaretechnik und Programmiersprachen
Förderung
Förderung von 2016 bis 2021
Projektkennung
Deutsche Forschungsgemeinschaft (DFG) - Projektnummer 282458149
Datenbanksprachen erlauben die Formulierung von Anfragen und Operationen auf großen Datenmengen in einer deklarativen Form aus der sich weitreichende Optimierungen zur effizienten Ausführung ableiten lassen. Programmiersprachen zeichnen sich hingegen durch ihre Generalität, Abstraktionsmechanismen und Möglichkeiten der systemnahen Optimierung aus. Das Ziel dieses Projektes ist der systematische Transfer von Einsichten und Techniken aus der Welt der Datenbanksprachen in die der Programmiersprachen und umgekehrt. Motiviert wird dieser Transfer durch die Beobachtung, dass vielen aktuellen Forschungstrends in beiden Gemeinden jeweils ein "neidvoller Blick über den Zaun" zugrunde liegt. Dazu werden wir einerseits etablierte Techniken der Datenbanksysteme -- etwa deklarative Anfragen, Anfrageoptimierung, Indexierung und inkrementelle Änderungsoperationen -- in die Welt Programmiersprachen transferieren. Das stellt eine echte Herausforderung dar und bedingt Adaptionen und Generalisierungen dieser Techniken, um dem Ausführungsmodell universeller Programmiersprachen gerecht zu werden. Andererseits werden wir Datenbanksprachen um Abstraktionsmechanismen, Analyseverfahren und Implementierungstechniken bereichern, die ihre Wurzeln in den (funktionalen) Programmiersprachen besitzen. Unter anderem wollen wir die Ausdrucksfähigkeit von Datenbanksprachen durch algebraische Datentypen, Funktionen höherer Ordnung und Konstrukte zur generischen Programmierung erweitern. Dabei bringen wir Techniken wie Program Slicing, Flattening und Defunktionalisierung zum Einsatz, die die weitreichende Analyse und effiziente Ausführung von Anfragen und Transaktionen unterstützen werden. In beiden Fällen vermeiden wir -- soweit möglich -- Änderungen an existierenden Programmier- und Datenbanksprachen, sondern bauen auf Spracheinbettung oder Übersetzungstechniken: Ziel ist es, unsere neue Verfahren in bewährte Systeme nicht-invasiv einzubringen, um einen unmittelbaren Einsatz in praktischen Anwendungen zu erleichtern. Ein weiterer, abschließender Beitrag dieses Projektes ist die Definition einer ausdrucksstarken Sprache mit zwei Implementationen: einer, die auf Datenbanksystemen zur Ausführung kommen kann, sowie einer, die in eine funktionale Programmiersprache eingebettet (bzw. übersetzt) werden kann. Diese neue experimentelle Sprache wird es ermöglichen, Bibliotheken und Programmiertechniken auf beiden Seiten des Zaunes zu verwenden. Welche Funktionalität eines Programmes unter Kontrolle des Datenbanksystems oder der regulären Programmierumgebung ausgeführt wird, lässt sich dann dynamisch festlegen.
DFG-Verfahren
Sachbeihilfen