Mitschke, Ralf ; Erdweg, Sebastian ; Köhler, Mirko ; Mezini, Mira ; Salvaneschi, Guido (2014)
i3QL: Language-Integrated Live Data Views.
Portland, Oregon, USA
doi: 10.1145/2714064.2660242
Konferenzveröffentlichung, Bibliographie
Kurzbeschreibung (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.
Typ des Eintrags: | Konferenzveröffentlichung |
---|---|
Erschienen: | 2014 |
Autor(en): | Mitschke, Ralf ; Erdweg, Sebastian ; Köhler, Mirko ; Mezini, Mira ; Salvaneschi, Guido |
Art des Eintrags: | Bibliographie |
Titel: | i3QL: Language-Integrated Live Data Views |
Sprache: | Deutsch |
Publikationsjahr: | Oktober 2014 |
Verlag: | ACM |
Buchtitel: | Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & Applications |
Reihe: | OOPSLA '14 |
Veranstaltungsort: | Portland, Oregon, USA |
DOI: | 10.1145/2714064.2660242 |
Kurzbeschreibung (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. |
Freie Schlagworte: | incremental computation, reactive programming, scala |
ID-Nummer: | TUD-CS-2014-1102 |
Fachbereich(e)/-gebiet(e): | Profilbereiche Profilbereiche > Cybersicherheit (CYSEC) |
Hinterlegungsdatum: | 21 Aug 2017 14:35 |
Letzte Änderung: | 22 Jan 2019 11:14 |
PPN: | |
Export: | |
Suche nach Titel in: | TUfind oder in Google |
Frage zum Eintrag |
Optionen (nur für Redakteure)
Redaktionelle Details anzeigen |