|Volume 7, Issue 1 -
Work In Progress
SAGE2: AN OBJECT ORIENTED INTERFACE FOR PROGRAM TRANSFORMATION TOOLS
Carl Kesselman, John Carnett, Mei-Hui Su, California Institute of Technology; Dennis Gannon, Indiana University; Jonathan Poole, University College London; Francois Bodin, IRISA/University of Rennes
CRPC researchers at the California Institute of Technology and Indiana University and collaborators have undertaken the complete redesign of the Sage++ tool kit. This package is a class library for high-level program representation used in various CRPC projects, including pC++ and Fortran M. The next release of the CC++ compiler and HPC++ will also be built on the new Sage.
The current focus of the redesign is support for C++. Other front ends for Fortran 90, CORBA IDL and Java will follow. A significant contribution of this effort is to develop a flexible and logical representation of a program that is oriented toward program transformations. Careful design of the data structures has resulted in a package that will enable users to build source-to-source transformations for C++ programs with a minimum amount of effort.
The front end for the new Sage is based on the Edison Design Group (EDG) C++ parser. This is a high-quality commercial C++ front end that is tracking the current C++ ANSI standard, including namespaces, dynamic casting, and member function templates. The parser also operates in a mode in which full ANSI C is supported. Use of the EDG parser means that the Sage front end will be as accurate and robust as many commercial C++ products.
The first version of this package will be available by August 1996.