C**: A Large-Grain, Object-Oriented, Data-Parallel Programming Language
University of Wisconsin Computer Sciences Technical Report #1126
Mathematics and Computer Science
C** is a new data-parallel programming language based on a new computation model called large-grain data parallelism. C** overcomes many disadvantages of existing data-parallel languages, yet retains their distinctive and advantageous programming style and deterministic behavior. This style makes data parallelism well-suited for massively-parallel computation. Large-grain data parallelism enhances data parallelism by permitting a wider range of algorithms to be expressed naturally. C** is an object-oriented programming language that inherits data abstraction features from C++. Existing scientific programming languages do not provide modern programming facilities such as operator extensibility, abstract datatypes, or object-oriented programming.C** -- and its sequential subset C++ -- support modern programming practices and enable a single language to be used for all parts of large, complex programs and libraries. This technical report consists of three parts. The body of the report is a copy of a paper that appeared in the 5th Workshop on Languages and Compilers for Parallel Computing, Yale University, Aug. 1992 (to appear, Lecture Notes in Computer Science, Springer-Verlag). The first appendix is a detailed overview of C**, which describes the language more thoroughly than the paper. The second appendix contains several sample C** programs and some preliminary performance results.
Brad Richards, James R. Larus, Guhan Viswanathan. "C**: A Large-Grain, Object-Oriented, Data-Parallel Programming Language." University of Wisconsin Computer Sciences Technical Report #1126, November 1992.