ftp://ftp.extreme.indiana.edu/pub/sage/ pC++ <version>1.7 <publication-date>9 Sep 1994 <contact>sage@cica.indiana.edu <description><url>http://www.extreme.indiana.edu/sage/</url> <abstract> 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. <environment> 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 <keywords>parallel programming language; data parallelism <category>ppt-pplang <reference><url>http://www.extreme.indiana.edu/sage/docs.html</url> </urc> <urc> <url>ftp://ftp.extreme.indiana.edu/pub/sage/ <title>Sage++ <abstract> 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. <contact>sage@extreme.indiana.edu <keywords>source code restructuring <category>ppt-scr <reference><url>http://www.extreme.indiana.edu/sage/docs.html</url> </urc>