Title
i3QL: language-integrated live data views
Abstract
An incremental computation updates its result based on a change to its input, which is often an order of magnitude faster than a recomputation from scratch. In particular, incrementalization can make expensive computations feasible for settings that require short feedback cycles, such as interactive systems, IDEs, or (soft) real-time systems. This paper presents i3QL, a general-purpose programming language for specifying incremental computations. i3QL provides a declarative SQL-like syntax and is based on incremental versions of operators from relational algebra, enriched with support for general recursion. We integrated i3QL into Scala as a library, which enables programmers to use regular Scala code for non-incremental subcomputations of an i3QL query and to easily integrate incremental computations into larger software projects. To improve performance, i3QL optimizes user-defined queries by applying algebraic laws and partial evaluation. We describe the design and implementation of i3QL and its optimizations, demonstrate its applicability, and evaluate its performance.
Year
DOI
Venue
2014
10.1145/2660193.2660242
OOPSLA
Keywords
Field
DocType
incremental computation,language constructs and features,reactive programming,scala
Scala,Programming language,Computer science,Partial evaluation,Theoretical computer science,Software,Reactive programming,Relational algebra,Operator (computer programming),Recursion,Computation
Conference
Volume
Issue
ISSN
49
10
0362-1340
Citations 
PageRank 
References 
7
0.46
40
Authors
5
Name
Order
Citations
PageRank
Ralf Mitschke1905.18
Sebastian Erdweg246133.21
Mirko Köhler371.13
Mira Mezini43171211.04
Guido Salvaneschi535434.50