Dan Quinlan
Lawrence Livermore National Laboratory
USA
email: dquinlan@llnl.gov
Libraries provide the application developer with convenient high-level user-defined abstractions for a specific application domain. We will describe ROSE, a object-oriented infrastructure for source-to-source translation, that provides an interface for programmers to write their own specialized translators for optimizing such abstractions. ROSE is a part of current research on telescoping languages, which provides optimizations within the use of libraries in scientific applications. This talk will describe the approaches within ROSE to extend the optimization techniques, common in well defined languages, to the optimization of scientific applications using well defined libraries. We will present how high-level grammars, customized to a specific library, can be automatically generated and used to both recognized high-level abstractions within applications and also trigger the optimization of their use. The idea of higher level languages driving the generation of lower level C++ code was originally discussed by Stroustrup in 1994. The techniques presented in this talk are a special case of compiler support for high-level abstractions such as those found in object-oriented numerical libraries. Specifically in this work we utilize the semantics of the high-level abstractions and generate low-level C++ code.