A Theory of Changes for Higher-Order Languages - Incrementalizing λ-Calculi by Static Differentiation
> [...] 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.