On Syntax-Directed Adjoint Fortran Code

Uwe Naumann, Jan Riehme

Gradients of high-dimensional functions can be computed efficiently and with machine accuracy by so-called adjoint codes.We present an L-attributed grammar for the single-pass generation of intraprocedural adjoint code for a subset of Fortran. Our aim is to integrate the syntaxdirected approach into the front-end of the NAGWare Fortran compiler. Research prototypes of this compiler that build adjoint code based on an abstract intermediate representation have been developed for several years. We consider the syntax-directed generation of adjoint code as a low development cost alternative to more sophisticated algorithms. The price to pay comes in form of a very limited set of code optimizations that can be performed in a single-pass setting.