Adding AD to Scheme by Differentiating the Interpreter
summary
Claims a working method to add automatic differentiation to Scheme by differentiating the interpreter and lifting values into layered numerical levels. It implements forward-mode AD with dual numbers, encodes tangents in the interpreter’s value representation, and handles higher-order functions by lifting closures and environments so AD is first-class and nestable. Prototype targets a pure Scheme subset, computes gradients (forward mode costs k runs for k inputs), returns correct primal and tangent parts, and can be extended toward reverse mode by transforming the interpreter.
AI-written summary · about
chapters (9)
- 0:00Session introduction
- 2:12Concepts of differentiation
- 5:06Push-forward and manifolds
- 8:21Dual numbers and AD
- 10:28Implementing the AD algorithm
- 14:00Higher-order AD operators
- 17:26Interpreter-based AD
- 20:53Conclusion and future work
- 23:52Q&A session
related talks
11mAbstract Interpretation for Automatic Differentiation
29mPartial Evaluation of Automatic Differentiation for Differential-Algebraic Equati...
39mDifferentiable Functional Programming
05mPartial Evaluation of Forward-Mode Automatic Differentiation
36mProgramming Languages for Automatic Differentiation: What Now?
59mDifferentiable Programming in C++
23mAutomatic Differentiation in Clojure with SICMUtils
14mNominal Semantics for First-class Automatic Differentiation
