Higher-Order and Symbolic Computation, 13(4)289-313
Efficiency by Incrementalization: An Introduction
Yanhong A. Liu, Computer Science Department, 215 Lindley Hall,
Indiana University, Bloomington, IN 47405, USA
Abstract: Incremental computation takes advantage of repeated
computations on inputs that differ slightly from one another,
computing each output efficiently by exploiting the previous
output. This paper gives an overview of a general and systematic
approach to incrementalization: given a program f and an operation O,
the approach yields an incremental program that computes f(x O y)
efficiently by using the result of f(x), the intermediate results of
f(x), and auxiliary information of f(x) that can be inexpensively
maintained.
Since every non-trivial computation proceeds by iteration or
recursion, the approach can be used for achieving efficient
computation by computing each iteration incrementally using an
appropriate incremental program. This approach has applications in
interactive systems, optimizing compilers, transformational
programming, and many other areas, where problems were previously
solved in less general and systematic ways. This paper also describes
the design and implementation of CACHET, a prototype system for
incrementalization.
Keywords:
|
This article can be downloaded [here].
|
|