MURAL - Maynooth University Research Archive Library



    Using Polyvariant Union-Free Flow Analysis to Compile a Higher-Order Functional-Programming Language with a First-Class Derivative Operator to Efficient Fortran-like Code


    Siskind, Jeffrey Mark and Pearlmutter, Barak A. (2008) Using Polyvariant Union-Free Flow Analysis to Compile a Higher-Order Functional-Programming Language with a First-Class Derivative Operator to Efficient Fortran-like Code. Technical Report. ECE Technical Reports (Purdue e-Pubs).

    [thumbnail of BP-Using-Polyvariant-2008.pdf]
    Preview
    Text
    BP-Using-Polyvariant-2008.pdf

    Download (228kB) | Preview
    Official URL: http://docs.lib.purdue.edu/ecetr/367

    Abstract

    We exhibit an aggressive optimizing compiler for a functionalprogramming language which includes a first-class forward automatic differentiation (AD) operator. The compiler’s performance is competitive with FORTRAN-based systems on our numerical examples, despite the potential inefficiencies entailed by support of a functional-programming language and a first-class AD operator. These results are achieved by combining (1) a novel formulation of forward AD in terms of a reflexive mechanism that supports firstclass nestable nonstandard interpretation with (2) the migration to compile-time of the conceptually run-time nonstandard interpretation by whole-program inter-procedural flow analysis. Categories and Subject Descriptors G.1.4 [Quadrature and Numerical Differentiation]: Automatic differentiation; D.3.2 [Language Classifications]: Applicative (functional) languages; D.3.4 [Processors]: Code generation, Compilers, Optimization; F.3.2 [Semantics of Programming Languages]: Partial evaluation, Program analysis
    Item Type: Monograph (Technical Report)
    Additional Information: Cite as: Siskind, Jeffrey M. and Pearlmutter, Barak A., "Using Polyvariant Union-Free Flow Analysis to Compile a Higher-Order Functional- Programming Language with a First-Class Derivative Operator to Efficient Fortran-like Code" (2008). ECE Technical Reports. Paper 367. http://docs.lib.purdue.edu/ecetr/367
    Keywords: Forward AD; Source-to-source transformation; Reflection; Higher-order functions; Nonstandard interpretation;
    Academic Unit: Faculty of Science and Engineering > Computer Science
    Item ID: 8151
    Identification Number: 367
    Depositing User: Barak Pearlmutter
    Date Deposited: 13 Apr 2017 13:37
    Publisher: ECE Technical Reports (Purdue e-Pubs)
    Refereed: Yes
    URI: https://mural.maynoothuniversity.ie/id/eprint/8151
    Use Licence: This item is available under a Creative Commons Attribution Non Commercial Share Alike Licence (CC BY-NC-SA). Details of this licence are available here

    Repository Staff Only (login required)

    Item control page
    Item control page

    Downloads

    Downloads per month over past year

    Origin of downloads