ftp://ftp.extreme.indiana.edu/pub/sage/
pC++
1.7
9 Sep 1994
sage@cica.indiana.edu
http://www.extreme.indiana.edu/sage/
pC++ is a portable parallel C++ for high performance computers. pC++ is a
language extention to C++ that permits data-parallel style opertations using
"collections of objects" from some base "element" class. Member functions
from this element class can be applied to the entire collection in parallel.
This allows programmers to compose distributed data structures with
parallel execution semantics. These distributed structures can be aligned and
distributed over the memory hierarchy of the parallel machine much like
HPF. pC++ also includes a mechanism for encapsulating SPMD style
computation in a thread-based computing model.
pC++ code is extremely portable. Just like Cfront translates C++ code into
standard ANSI C that can be passed to the native C compiler, the pC++
preprocessor (written using Sage++) translates pC++ into C++, which is then
compiled on the target architecture. Currently, pC++ has run-time systems
for the following parallel machines:
Thinking Machines CM5
Silicon Graphics Challenge
Kendall Square KSR1
Intel Paragon
Meiko CS2
IBM SP1
BBN TC2000
Sequent Symmetry
homogeneous networks of workstations (PVM)
Furthermore, code can be developed and tested on the following
"uniprocessor" workstations:
HP hpux
DEC Decstation (MIPS based)
DEC Alpha
Sun4
Cray C90
SGI Irix
IBM RS6000
NeXT
parallel programming language; data parallelism
ppt-pplang
http://www.extreme.indiana.edu/sage/docs.html
ftp://ftp.extreme.indiana.edu/pub/sage/
Sage++
Sage++ is an object-oriented compiler preprocessor toolkit. Using Sage++ to
transform source code is a three step process:
PARSING: Source code, either FORTRAN, pC++, or C, is parsed
and saved as a machine-independant parse tree (".dep" file).
RESTRUCTURING: The ".dep" file is read by a Sage++-built
restructuring tool. Sage++ uses member functions to manipulate the
parse tree. For example, a restructuring program written with Sage++
could identify function-call sites, add variables, optimize loops, add
tracing functions, or globally replace variables. After the parse tree
has been modified, the new ".dep" file is saved.
UNPARSING: The new ".dep" file is "unparsed", recreating the
source code and reflecting the changes that were made to the parsed
form. After unparsing, the source code can be compiled with the
native compiler.
sage@extreme.indiana.edu
source code restructuring
ppt-scr
http://www.extreme.indiana.edu/sage/docs.html