| | |
Summary: A Consistent Semantics of Self-Adjusting
Computation
Umut A. Acar1
, Matthias Blume1
, and Jacob Donham2
1
Toyota Technological Institute
2
Carnegie Mellon University
Abstract. This paper presents a semantics of self-adjusting computa-
tion and proves that the semantics is correct and consistent. The seman-
tics integrates change propagation with the classic idea of memoization to
enable reuse of computations under mutation to memory. During evalua-
tion, reuse of a computation via memoization triggers a change propaga-
tion that adjusts the reused computation to reflect the mutated memory.
Since the semantics combines memoization and change-propagation, it
involves both non-determinism and mutation. Our consistency theorem
states that the non-determinism is not harmful: any two evaluations of
the same program starting at the same state yield the same result. Our
correctness theorem states that mutation is not harmful: self-adjusting
|