ICFP 2021
Sun 22 - Sat 28 August 2021
Fri 27 Aug 2021 23:30 - 00:00 at Scheme - Session B

We add generic automatic differentiation (AD) to a pure eager Scheme by manually performing AD on a simple metacircular interpreter. We then make AD first-class by “tying the knot”: allowing the interpreter to call its AD-transformed version, and unifying the transformed and un-transformed interpreters into a single generic interpreter, thus allowing nested AD. This requires the addition of data structures corresponding to lifted domains, along with associated machinery. For instance, lifting to a single level of forward AD changes numbers into dual numbers, with constructors (bundle) and accessors (primal and tangent). This machinery needs to be generalized to all objects, including closures; and maintaining the computational guarantees of AD requires careful attention to detail, such as making certain operations lazy. This process is guided by a variety of algebraic identities which should be maintained.

Fri 27 Aug

Displayed time zone: Seoul change

23:30 - 01:00
Session BScheme at Scheme
23:30
30m
Talk
Adding AD to Scheme by Differentiating the Interpreter
Scheme
Mehrdad Maleki Mastercard Labs, Barak A. Pearlmutter Maynooth University, Jeffrey Mark Siskind Elmore Family School of Electrical and Computer Engineering, Purdue University
00:00
30m
Talk
A lightweight approach for accessing Python modules from Gambit Scheme (Lightning Talk)
Scheme
Marc-André Bélanger Université de Montréal, Marc Feeley Université de Montréal
00:30
30m
Talk
Graphite: A Library for Data Visualization (Lightning Talk)
Scheme
Hazel Levine Indiana University, Sam Tobin-Hochstadt Indiana University