A Theory Of Changes For Higher-Order Languages Incrementalizing Lambda-Calculi By Static Differentiation

ACM SIGPLAN Notices(2014)

引用 34|浏览80
暂无评分
摘要
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.We prove the program transformation correct in Agda for a family of simply-typed lambda-calculi, parameterized by base types and primitives. A precise interface specifies what is required to incrementalize the chosen primitives.We investigate performance by a case study: We implement in Scala the program transformation, a plugin and improve performance of a nontrivial program by orders of magnitude.
更多
查看译文
关键词
Incremental computation,first-class functions,performance,Agda,formalization
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要