ProjectALIEN – Abstraktionen, Sprachen und Implementierungstechniken, die Kluft zwischen Programmier- und Anfragesprachen…
Basic data
Acronym:
ALIEN
Title:
Abstraktionen, Sprachen und Implementierungstechniken, die Kluft zwischen Programmier- und Anfragesprachen überwinden
Duration:
01/02/2016 to 31/01/2019
Abstract / short description:
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
Änderungs"-operationen---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
Pro"-grammier- 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, abschliessender 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.
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
Änderungs"-operationen---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
Pro"-grammier- 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, abschliessender 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.
Keywords:
Programmiersprachen
Anfragesprachen
data bases
Datenbanken
Involved staff
Managers
Faculty of Science
University of Tübingen
University of Tübingen
Department of Informatics
Faculty of Science
Faculty of Science
Wilhelm Schickard Institute of Computer Science (WSI)
Department of Informatics, Faculty of Science
Department of Informatics, Faculty of Science
Faculty of Science
University of Tübingen
University of Tübingen
Wilhelm Schickard Institute of Computer Science (WSI)
Department of Informatics, Faculty of Science
Department of Informatics, Faculty of Science
Contact persons
Grieg, Birgit
Wilhelm Schickard Institute of Computer Science (WSI)
Department of Informatics, Faculty of Science
Department of Informatics, Faculty of Science
Local organizational units
Wilhelm Schickard Institute of Computer Science (WSI)
Department of Informatics
Faculty of Science
Faculty of Science
Funders
Bonn, Nordrhein-Westfalen, Germany
Bonn, Nordrhein-Westfalen, Germany