The Polaris Program Manipulation System is a production quality tool for source-to-source transformations and complex analysis of Fortran code. In this paper, we describe the motivations for and the implementation of Polaris' internal representation (IR). The IR is composed of a basic abstract syntax tree on top of which exist many layers of functionality. This functionality allows complex operations on the data structure. Further, the IR is designed to enforce the consistency of the internal structure in terms of both the correctness of the data structures and the correctness of the Fortran code being manipulated. In addition, operations on the IR result in the automatic updating of affected data structures such as flow information. We describe low the system's philosophies developed from its predecessor, the Delta prototyping system, and how they were implemented in Polaris' IR. We also provide a number of examples of using the Polaris system.
- Internal representation
- parallelizing compiler
- source-to-source transformation
ASJC Scopus subject areas
- Theoretical Computer Science
- Computational Theory and Mathematics