With recent advances, programs can be compiled to efficiently respond to incremental input changes. However, there is no language-level support for reasoning about the time complexity of incremental updates. Motivated by this gap, we present CostIt, a higher-order functional language with a lightweight refinement type system for proving asymptotic bounds on incremental computation time. Type refinements specify which parts of inputs and outputs may change, as well as dynamic stability, a measure of time required to propagate changes to a program’s execution trace, given modified inputs. We prove our type system sound using a new step-indexed cost semantics for change propagation and demonstrate the precision and generality of our technique ...
A systematic approach is given for deriving incremental programs from non-incremental programs writt...
If the result of an expensive computation is invalidated by a small change to the input, the old res...
Incremental computations are those that process input changes faster than naive computation that run...
International audienceWith recent advances, programs can be compiled to efficiently respond to incre...
Self-adjusting computation is a language-based approach to writing programs that respond dynamically...
Self-adjusting computation is an evaluation model in which pro-grams can respond efficiently to smal...
Incremental computation takes advantage of repeated computations on inputs that differ slightly fro...
AbstractA common way to evaluate the time complexity of an algorithm is to use asymptotic worst-case...
Many researchers have proposed programming languages that sup-port incremental computation (IC), whi...
Incremental computation takes advantage of repeated computations on inputs that differ slightly from...
Self-adjusting computation enables writing programs that can automatically and efficiently respond t...
Incremental computations can improve the performance of interactive programs such as spreadsheet pro...
An incremental algorithm (also called a dynamic update algorithm) updates the answer to some problem...
Incremental computations can improve the performance of interactive programs such as spreadsheet pro...
We develop an explicit two level system that allows programmers to reason about the behavior of effe...
A systematic approach is given for deriving incremental programs from non-incremental programs writt...
If the result of an expensive computation is invalidated by a small change to the input, the old res...
Incremental computations are those that process input changes faster than naive computation that run...
International audienceWith recent advances, programs can be compiled to efficiently respond to incre...
Self-adjusting computation is a language-based approach to writing programs that respond dynamically...
Self-adjusting computation is an evaluation model in which pro-grams can respond efficiently to smal...
Incremental computation takes advantage of repeated computations on inputs that differ slightly fro...
AbstractA common way to evaluate the time complexity of an algorithm is to use asymptotic worst-case...
Many researchers have proposed programming languages that sup-port incremental computation (IC), whi...
Incremental computation takes advantage of repeated computations on inputs that differ slightly from...
Self-adjusting computation enables writing programs that can automatically and efficiently respond t...
Incremental computations can improve the performance of interactive programs such as spreadsheet pro...
An incremental algorithm (also called a dynamic update algorithm) updates the answer to some problem...
Incremental computations can improve the performance of interactive programs such as spreadsheet pro...
We develop an explicit two level system that allows programmers to reason about the behavior of effe...
A systematic approach is given for deriving incremental programs from non-incremental programs writt...
If the result of an expensive computation is invalidated by a small change to the input, the old res...
Incremental computations are those that process input changes faster than naive computation that run...