Incremental computation aims to compute more efficiently on changed input by reusing previously computed results. We give a high-level overview of works on incremental computation, and highlight the essence underlying all of them, which we call incrementalization -- the discrete counterpart of differentiation in calculus. We review the gist of a systematic method for incrementalization, and a systematic method centered around it, called Iterate-Incrementalize-Implement, for program design and optimization, as well as algorithm design and optimization. At a meta-level, with historical contexts and for future directions, we stress the power of high-level data, control, and module abstractions in developing new and better algorithms and programs as well as their precise complexities.
翻译:增量计算旨在通过复用先前计算的结果,更高效地处理发生变化的输入。我们概述了增量计算领域的相关研究工作,并揭示了其共同本质——我们称之为“增量法”,即微积分中微分概念在离散领域的对应。我们回顾了系统化增量法的核心要点,以及围绕它构建的名为“迭代-增量-实现”的系统方法,该方法可用于程序设计与优化、算法设计与优化。在元层面,结合历史背景与未来方向,我们强调高层数据抽象、控制抽象与模块抽象在开发新型更优算法和程序及其精确复杂度分析中的强大作用。