UNIVERSITY OF HERTFORDSHIRE COMPUTER SCIENCE RESEARCH COLLOQUIUM "Taking Derivatives of Functional Programs: AD in a Functional Framework" Jeffrey Mark Siskind School of Electrical and Computer Engineering Purdue University, USA 22 November 2005 (TUESDAY!!) LF231 (Wright Building) Hatfield, College Lane Campus 3 - 4 pm Coffee/tea and biscuits will be available. [Catering Permitting] Everyone is Welcome to Attend [Space Permitting] Abstract: Algorithm Differentiation (AD) is an established enterprise that seeks to take the derivatives of functions specified as programs through symbolic manipulation rather than finite differencing. AD has traditionally been applied to imperative programs, typically using preprocessors that apply a source-to-source transformation to derive a program for computing the derivative of a function from a program that computes the original function. We present a novel framework for performing AD within modern functional-programming languages, treating AD operators as first-class higher-order functions that map first-class function objects to first-class function objects. Our approach is more modular, allowing a library of functions based on derivatives to be built compositionally. It allows the callee to specify the necessary AD, rather than insisting that the caller provide appropriately transformed functions. Our approach is foundational: we develop a method for taking the derivative of any lambda-calculus expression over a basis of standard numeric primitives. Since the lambda calculus is both the source and target of our transformations, higher-order derivatives can be constructed naturally, without special mechanisms. In this talk, I will give a tutorial overview of AD, demonstrate the power and convenience of the functional formulation of AD by way of a series of small examples, and sketch the framework underlying our implementation. (This is joint work with Barak A. Pearlmutter.) -- Hertfordshire Computer Science Research Colloquium http://homepages.feis.herts.ac.uk/~nehaniv/colloq