A theory of incremental computation and its application

It is a common occurrence in a programming environment to apply a software tool to a series of similar inputs. Examples include compilers, interpreters, text formatters, etc., whose inputs are usually incrementally modifed text files. Thus programming environment researchers have recognized the importance of building incremental versions of these tools — i.e. ones which can efficiently update the result of a computation when the input changes only slightly.