An XML-Based Platform for Semantic Transformation of Numerical Programs
|Title||An XML-Based Platform for Semantic Transformation of Numerical Programs|
|Year of Publication||2002|
|Authors||Hovland, PD, Naumann, U, Norris, B|
We describe a simple component architecture for the development of tools for mathematically based semantic transformations of scientific software. This architecture consists of compiler-based, language-specific front- and back-ends for source transformation, loosely coupled with one or more language-independent \"plug-in\" transformation modules. The coupling mechanism between the front- and back-ends and transformation modules is provided by the XML Abstract Interface Form (XAIF). XAIF provides an abstract, language-independent representation of language constructs common in imperative languages, such as C and Fortran. We describe the use of this architecture in the construction of tools for automatic differentiation (AD) of programs written in Fortran 77 and ANSI C. The XAID is particularly well suited for performing the source transformations needed for AD. Differentiation modules typically operate within the scope of statements or basic blocks, working at a level where procedural languages are very similar. Thus, it is possible to specify a common interface format for mathematically-based semantic transformations that need not represent the union of all languages.