Author:
ACAR UMUT A.,BLUME MATTHIAS,DONHAM JACOB
Abstract
AbstractThis paper presents a semantics of self-adjusting computation and proves that the semantics is correct and consistent. The semantics introduces memoizing change propagation, which enhances change propagation with the classic idea of memoization to enable reuse of computations even when memory is mutated via side effects. During evaluation, computation reuse via memoization triggers a change-propagation algorithm that adapts the reused computation to the memory mutations (side effects) that took place since the creation of the computation. Since the semantics includes both memoization and change propagation, it involves both non-determinism (due to memoization) and mutation (due to change propagation). 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 programs are compatible with purely functional programming. We formalize the semantics and its meta-theory in the LF logical framework and machine check our proofs using Twelf.
Publisher
Cambridge University Press (CUP)
Cited by
4 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. The Geometry of Computation-Graph Abstraction;Proceedings of the 33rd Annual ACM/IEEE Symposium on Logic in Computer Science;2018-07-09
2. Efficient Functional Reactive Programming Through Incremental Behaviors;Programming Languages and Systems;2017
3. Reactive Imperative Programming with Dataflow Constraints;ACM Transactions on Programming Languages and Systems;2015-01-20
4. Refinement Types for Incremental Computational Complexity;Programming Languages and Systems;2015