2013
DOI: 10.1017/s0956796813000099
|View full text |Cite
|
Sign up to set email alerts
|

A consistent semantics of self-adjusting computation

Abstract: This paper presents a semantics of self-adjusting computation and proves that the semantics are correct and consistent. The semantics integrate change propagation with the classic idea of memoization to enable reuse of computations under mutation to memory. During evaluation, reuse of a computation via memoization triggers a change propagation that adjusts the reused computation to reflect the mutated memory. Since the semantics integrate memoization and change-propagation, it involves both non-determinism (du… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1

Citation Types

0
5
0

Year Published

2014
2014
2020
2020

Publication Types

Select...
2
2
1

Relationship

0
5

Authors

Journals

citations
Cited by 7 publications
(5 citation statements)
references
References 66 publications
0
5
0
Order By: Relevance
“…-We present an implementation of incremental behaviors and incremental collections as a Scala library. 2 We demonstrate the advantages of incremental behaviors through a performance analysis of our implementation. In the analysis we compare incremental behavior's computational and bandwidth overhead with their non-incremental counterpart.…”
Section: Contributionsmentioning
confidence: 99%
See 1 more Smart Citation
“…-We present an implementation of incremental behaviors and incremental collections as a Scala library. 2 We demonstrate the advantages of incremental behaviors through a performance analysis of our implementation. In the analysis we compare incremental behavior's computational and bandwidth overhead with their non-incremental counterpart.…”
Section: Contributionsmentioning
confidence: 99%
“…The second version provides safe access to local mutable state, something for which we do not have an alternative. Given the similarites between the two approaches a logical step for future work seems to incorporate the typeclass-based framework for incremental computing into the incremental behavior API which could give us alternative definitions such as: As a final note, Several SAC papers [2,9] refer to FRP and point out opportunities to combine the two, for example, [2] says "Although FRP research remained largely orthogonal to incremental computation, it may benefit from incremental computation, because computations performed at consecutive time steps can be similar.". Incremental behaviors may be a stepping stone towards a better integration of incremental computations in FRP.…”
Section: Related Workmentioning
confidence: 99%
“…Earlier work investigated techniques based on static dependency graphs [14,38] and memoization [32,21]. More recent work on self-adjusting computation introduced dynamic dependency graphs [3] and a way to integrate them with a form of memoization [2,4]. Several flavors of self-adjusting computation have been implemented in programming languages such as C [19], Haskell [8], Java [34] and Standard ML [27,10].…”
Section: Introductionmentioning
confidence: 99%
“…First, to decide which files need to be rebuilt, it stores the dependency graph that is constructed during the previous build (instead of just file modification times or a linear chain). This idea has a long history, going back to incremental (Demers et al, 1981), adaptive (Acar et al, 2002), and self-adjusting computations -see Acar et al (2007) and Section 9. Second, instead of aborting and deferring the execution of tasks whose newly discovered dependencies have not yet been built (as EXCEL does), SHAKE suspends their execution until the dependencies are brought up to date.…”
mentioning
confidence: 99%
“…While not typically considered build systems, self-adjusting computation is a well-studied area, and in particular, the contrast between different formulations has been thoroughly investigated, for example, see Acar et al (2007). Self-adjusting computations can automatically adjust to an external change to their inputs.…”
mentioning
confidence: 99%