Project Details
Projekt Print View

ALIEN: Abstractions, Languages, and Implementation Techniques That Cross the Program/Query Divide

Subject Area Security and Dependability, Operating-, Communication- and Distributed Systems
Software Engineering and Programming Languages
Term from 2016 to 2021
Project identifier Deutsche Forschungsgemeinschaft (DFG) - Project number 282458149
 
Database languages are well-suited to describe queries and operations on large data sets in a declarative way together with powerful optimizations that lead to efficient execution of those operations. Programming languages, on the other hand, excel in generality, abstraction, and low-level optimizations. The goal of this project is a systematic transfer of ideas and technologies from database languages to programming languages and vice versa, motivated by the observation that many current trends in these two research communities can be seen as an "envious peek over the fence."On one hand, we want to bring standard database techniques like declarative queries, query optimization, indexing, and incremental view maintenance to the programming language world. This is challenging and requires modifications to and generalizations of the existing techniques to account for the more general programming model of general-purpose languages. On the other hand, we want to enrich database languages with abstractions, analyses, and implementation techniques from general-purpose (functional) languages. More specifically, we want to increase the expressiveness of database languages with support for algebraic data types, higher-order functions, and generic programming. We want to use analysis and implementation techniques like program slicing, flattening, and defunctionalization to improve the analysis and efficient execution of database programs.In both cases, we aim to not modify existing programming- or database languages but rather use embedding or compilation techniques to incorporate those new techniques on top of the existing, proven technology. The goal is to establish a low barrier to adopt our techniques in practical applications. The final step in this project is the definition of one expressive programming language with two implementations: one that compiles to standard database system, and one that is embedded in (or compiled to) a functional programming language. With this new testbed language it will be possible to reuse libraries and programming techniques across the technology barrier, and to change the division of program functionality between the database and the general-purpose host on-the-fly.
DFG Programme Research Grants
 
 

Additional Information

Textvergrößerung und Kontrastanpassung