kirancodes.me
To Proof Maintenance & Beyond!

A theory of changes for higher-order languages: incrementalizing λ-calculi by static differentiation

Yufei Cai, Paolo G. Giarrusso, Tillmann Rendel, Klaus Ostermann

Abstract

If the result of an expensive computation is invalidated by a small change to the input, the old result should be updated incrementally instead of reexecuting the whole computation. We incrementalize programs through their derivative. A derivative maps changes in the program's input directly to changes in the program's output, without reexecuting the original program. We present a program transformation taking programs to their derivatives, which is fully static and automatic, supports first-class functions, and produces derivatives amenable to standard optimization.

Related papers