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.
Thu 23 Oct Times are displayed in time zone: Tijuana, Baja California change
13:30 - 15:00
|Distributed REScala: An Update Algorithm for Distributed Reactive Programming|
Joscha DrechslerTechnische Universität Darmstadt, Guido SalvaneschiTU Darmstadt, A: Ragnar MogkTechnische Universität Darmstadt, A: Mira MeziniTechnical University of DarmstadtLink to publication
|From Object Algebras to Attribute Grammars|
Tillmann RendelUniversity of Marburg, Jonathan Immanuel BrachthäuserUniversity of Marburg, Klaus OstermannUniversity of MarburgLink to publication
|Late Data Layout: Unifying Data Representation Transformations|
OOPSLALink to publication
|i3QL: Language-Integrated Live Data Views|
Ralf MitschkeTechnical University of Darmstadt, Sebastian ErdwegTU Darmstadt, Mirko KöhlerTechnical University of Darmstadt, Mira MeziniTechnical University of Darmstadt, Guido SalvaneschiTU DarmstadtLink to publication