Welcome to the Dictionary of Programming Languages, a compendium
of computer coding methods assembled to provide information and
aid your appreciation for computer science history.

Browse the dictionary by clicking on a section:

A
B
C
D
E
F
G
H
I
JK
L
M
N
O
P
QR
S
T
UV
WXYZ+

Get a full dump of the dictionary:

List of Names
Short Form
Full Form

**C****See:*-
C

*Language type:*- P - Parallel or Multi-programming

*Description:*- C* is a dialect of C featuring extended
syntax and semantics for supporting
parallel processing. It was designed for
application development on the Connection
Machine line of SIMD massively parallel
computers.

Two fundamental added features distinguish C* from standard C: parallel data elements, and parallel computation domains. Each variable in a C* routine is either a 'mono' (scalar) or a 'poly' (parallel) variable. The programmer can define any number of named domains, with domain-local parallel and scalar variables, and then define computations that take place in those domains.

C* supports the same data types and control structures as C.

C* is a commercial product, it was sold along with the Connection Machine CM2 and CM5 systems. No documentation seems to be available on the web.*Origin:*- Thinking Machines Corp, 1987.

*See Also:*-
Lucid
Sisal
Occam

*Remarks:*- The Connection Machine CM2 was an
idiosyncratic parallel processing machine,
typically sporting 16384 - 65536 simple
processors each with local memory,
and a simple
interconnection scheme. Typically, it
was used as a co-processor to a more
conventional computer, like a VAX, which
loaded programs into the CM and provided
I/O services.
The facilities of C* allowed the programmer
to approach the machine at a high level,
at the cost of not supporting some of the
machine's more specialized capabilities.

C* was supported by a library of commonly used parallel algorithms written at a lower level, like sort and search routines.

Connection machines are no longer widely used, and C* is not well known. It was somewhat influential in the parallel computing community.*Links:*-
Connection Machine Services

*Date:*- Last updated 3/25/98

*Sample code:*// Adapted from the paper "The C* Parallel // Programming Language" by Andrews and Barszcz, 1992. // Skyline Matrix Problem solution #define N 4 #define BIG 1024 domain Matrix { float a; int i; int j; } A[N][N]; domain RHS { float b; int i; } B[N]; domain Skyline { float s; int i; int j; } SKY[BIG]; domain Vector { float element; int start; } I[N], J[N]; void main() { int k,l,m; float x[N], element; float rowsum, pivot; int NonZeros; readMatrix(); [domain RHS].{ i = (int)(this - &B[0]); } [domain Matrix].{ int offset = (int) (this - &A[0][0]); i = offset / N; j = offset % N; } for(k = 0; k<N; k ) { rowsum = 0; [domain Matrix].{ if (i == k) rowsum = a; } B[k].b = rowsum; } NonZeros = map(); /* put matrix in skyline form? */ for(k=0; k<(N-1); k ) { [domain Skyline].{ if ((i ==k) && (j==k)) Pivot ,= s; if (((i>k) && (j==k)) && (I[i].start <= k)) { s = s / Pivot; I[i].element = s; } if (((i==k) && (j > k)) && (J[j].start <= k)) J[j].element = s; if (((i > k) && (j > k)) && ((I[i].start <= k) && J[j].start <= k)) s = s - (I[i].element * J[j].element); } } for(k = (N-1); k > 0; k--) { [domain Skyline].{ if (((i <= k) && (j ==k)) && (J[k].start <= k)) J[j].element = s; } x[k] ,= B[k].b / J[j].element; [domain Skyline].{ if ((i < k) && (J[k].start < k)) b = b - (J[j].element * x[k]); } } [domain Skyline].{ if (i == 0 && j == 0) Pivot ,= s; } x[0] = B[0].b / Pivot; printf("x\n"); for(k = 0; k<N; k ) printf("%f\n",x[k]); }

Descriptions in this dictionary are ©1997-99 Neal Ziring. Some examples copyright of their respective authors. Some technologies and languages are trademarked. Permission to copy descriptions is granted as long as authorship credit is preserved.

Comments on this dictionary, corrections and suggestions, are all welcome.
Please use email, the address is *ziring@home.com*

[Ziring MicroWeb Home] [Dictionary Start] [Sign Guestbook]

Dictionary and script maintained by Neal Ziring, last major modifications 3/18/98. Most recent additions to dictionary and master list, 1/00.