What is Polaris?
Polaris is a source to source transforming compiler intended to parallelize
programs written as conventional, sequential algorithms. It is an ongoing
project developed at UIUC. Polaris is essentially a driver routine which
scans a FORTRAN 77 program and converts it into an Abstract Syntax Tree
(AST.) Then, various passes are called by the driver on the AST.
Each pass attemps to optimize the program via specific methods, such as
constant propagation, reduction recognition, etc.. The driver program completes
its task by printing the program after any diagnostic information produced
by the passes is output.
What is MiniPolaris?
MiniPolaris is a version of Polaris with only the most fundamental passes.
The source program is read, parsed, and converted to an AST. The user will
then provide custom passes to extract information or make transformations
on the statements. After the custom passes are executed, the driver program
outputs the resulting code.
MiniPolaris has been designed to allow a multitude of students to share
much of the source code and libraries, using symbolic links, which also
enables an instructor to add interfaces for new assignments without interfering
with current development of the students. Additionally, the instructor
may provide a solution to an earlier assignment as an object file so that
later projects may build on earlier assignments without requiring a perfect
solution to the earlier projects.
To become familiar with the design and use of MiniPolaris, it is instructive
to examine the documentation available for Polaris. Read The
Polaris Internal Representation and Polaris
Developer's Document from the Polaris
web page at the University of Illinois, Urbana-Champaign (UIUC) for
a detailed description of the data types, conventions, components, etc..