Definition
C* (pronounced “see-star”) refers to two distinct data-parallel dialects of C developed by Thinking Machines Corporation for its Connection Machine supercomputers. The first version (1987) is organized around the declaration of domains, similar to classes in C++, but when code associated with a domain is activated, it is executed in parallel within all instances of the domain, not just a single designated instance. Compound assignment operators such as += are extended in C* to perform parallel reduction operations. An elaborate theory of control flow allows use of C control statements in a MIMD-like, yet predictable, fashion despite the fact that the underlying execution model is SIMD. The revised version (1991) replaces domains with shapes that organize processors into multidimensional arrays and abandons the MIMD-like control-flow theory.
Discussion
Of the four programming languages (*Lisp, C*, CM Fortran, and CM-Lisp) provided by Thinking Machines Corporation for...
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Bibliography
Frankel JL (1991) A reference description of the C* language. Technical Report TR-253, Thinking Machines Corporation, Cambridge, MA
Koelbel CH, Loveman DB, Schreiber RS, Steele GL Jr, Zosel ME (1994) The High Performance Fortran handbook. MIT Press, Cambridge, MA
Numrich RW, Reid J (1998) Co-array Fortran for parallel programming. SIGPLAN Fortran Forum 17(2):1–31
Quinn MJ, Hatcher PJ (1990) Data-parallel programming on multicomputers. IEEE Softw 7(5):69–76
Rose JR, Steele GL Jr (1986) C∗: An extended C language for data parallel programming. Technical Report PL 87–5, Thinking Machines Corporation, Cambridge, MA
Rose JR, Steele GL Jr (1987) C∗: An extended C language for data parallel programming. In: Supercomputing ’87: Proceedings of the second international conference on supercomputing, vol II: Industrial supercomputer applications and computations. International Supercomputing Institute, Inc., St. Petersburg, Florida, pp 2–16
Steele GL Jr, Daniel Hillis W (1986) Connection Machine Lisp: fine-grained parallel symbolic processing. In: LFP ’86: Proc. 1986 ACM conference on LISP and functional programming, ACM SIGPLAN/SIGACT/SIGART, ACM, New York, pp 279–297, Aug 1986
Thinking Machines Corporation (1987) Connection Machine model CM-2 technical summary. Technical report HA87-4, Cambridge, MA
Thinking Machines Corporation (1990) C∗ programming guide, version 6.0 Pre-Beta. Cambridge, MA
Thinking Machines Corporation (1990) C∗ user’s guide, version 6.0 Pre-Beta. Cambridge, MA
Thinking Machines Corporation (1993) C∗ programming guide. Cambridge, MA
Thinking Machines Corporation (1993) Connection Machine CM-5 technical summary, 3rd edn. Cambridge, MA
Thinking Machines Corporation (1994) C∗ 7.2 Alpha release notes. Cambridge, MA
Tichy WF, Philippsen M, Hatcher P (1992) A critique of the programming language C∗. Commun ACM 35(6):21–24
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer Science+Business Media, LLC
About this entry
Cite this entry
Steele, G.L. (2011). C*. In: Padua, D. (eds) Encyclopedia of Parallel Computing. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-09766-4_523
Download citation
DOI: https://doi.org/10.1007/978-0-387-09766-4_523
Publisher Name: Springer, Boston, MA
Print ISBN: 978-0-387-09765-7
Online ISBN: 978-0-387-09766-4
eBook Packages: Computer ScienceReference Module Computer Science and Engineering