Detailseite
Projekt Druckansicht

Neue Übersetzungs- und Ausführungstechniken für datenintensive Programme

Fachliche Zuordnung Sicherheit und Verlässlichkeit, Betriebs-, Kommunikations- und verteilte Systeme
Förderung Förderung von 2010 bis 2015
Projektkennung Deutsche Forschungsgemeinschaft (DFG) - Projektnummer 161858209
 
In modernen Programmier- und Skriptsprachen lassen sich Teilsprachen - oft in Form einer Familie von Funktionen über Arrays, Listen, oder Hash Maps - identifizieren, die sich hervorragend als ausdrucksstarke Datenbankanfragesprachen eignen. Derartige Datenbanksprachen wären, per Definition, nahtlos in ihre Gastsprache eingebettet, operierten über Werten und Objekten nativer Typen und würden Anfrageformulierung mittels Idiomen erlauben, die Programmierern ohnehin vertraut sind. Auf Basis dieser Beobachtungen entwickelt dieses Projekt neue Techniken, die es den weithin verfügbaren relationalen Datenbanksystemen ermöglichen, als Co-Prozessoren das Laufzeitsystem der Gastsprache bei der Auswertung datenintensiver Programme zu unterstützen: Programmfragmente, die in der datenorientierten Teilsprache formuliert sind, werden in relationale Anfragen - etwa SQL:1999 - compiliert und zur (parallelen) Auswertung an einen Datenbankprozessor übergeben. Unsere Vorarbeiten zeigen signifikante Laufzeitvorteile für diese Co-Ausführung von datenintensiven Programmen an. Im Kontext des Projektes werden wir u.a. Techniken entwickeln, die die Identifikation und Übersetzung ausdrucksstarker Teilprogrammiersprachen erlauben, um möglichst große Programmfragmente dem Datenbankprozessor überantworten zu können, Infrastruktur konzipieren und implementieren, die diese Co-Ausführung durch Programmiersprache und Datenbanksystem effizient ermöglicht, bspw. durch die robuste Extraktion von Anfragen aus Programmcode und die optimierte Instantiierung von sehr großen Objektmengen im Heap der Programmiersprache, die Ergebnisse einsetzen, um verwandte - zum Teil auch proprietäre - Technologie (etwa Microsofts® LINQ) zu systematisieren und zu generalisieren, etwa durch Übersetzung mächtigerer Teilsprachen oder deren Ausführung auf verschiedensten Datenbanksystemen sowie massiv parallelen Plattformen (MapReduce).
DFG-Verfahren Sachbeihilfen
 
 

Zusatzinformationen

Textvergrößerung und Kontrastanpassung