A slightly later language for the Connection Machine, C* was a data-parallel dialect of C. This language was first announced in 1987, and overhauled considerably for 1990. The discussion here is based on section 4.3 of [9].
C* introduced the idea of a shape, which was used to specify how parallel data was organized.
shape [128] [128] grid ; real:grid a, b, c ;This fragment would create a
Parallel operations usually occur within the context of a with statement. This construct activates the positions of the shape, and sets the context for the parallel variables manipulated within its body. For example:
with(grid) {
a = b + c ;
}
C* also had a builtin syntax for reduction operations, overloading the +=, etc, accumulating assignments of C. It had a where construct similar to Fortran 90:
with(grid) {
where(a > 0.0) {
...
}
}
A function pcoord(d) returned the logical coordinate in the
dth dimension of the currently active shape.