Department » Colloquia » Abstracts

Telescoping Languages: From Domain Specific Libraries to Domain Specific Languages

Speaker: Dan Quinlan, LLNL
Date: Thursday, July 14, 2005
Time: 11:00-12:00
Location: 1131 Kemper Hall


Abstract:
Libraries provide the application developer with convenient high-level user-defined abstractions for a specific application domain. We will describe ROSE, an 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 of 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 recognize 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 user-defined abstractions such as those found in object-oriented numerical libraries. Specifically in this work we utilize the semantics of the user-defined abstractions and automate the generation of significantly more efficient lower-level C++ code. ROSE includes a rich set of tools for generating customized transformations to support optimization of application codes. We currently support full C and C++(including template instantiation etc.), with Fortran 90 support under development as part of a collaboration with Rice to use their version of the Open64 F90 frontend. ROSE represents an attempt to define an open compiler infrastructure to handle the full complexity of full scale DOE applications codes using the languages common to scientific computing within DOE. We expect that such an infrastructure will also be useful for the development of numerous tools that may then realistically expect to work on full scale laboratory applications (commonly exceeding a million lines of code).