Issue No. 08 - August (1994 vol. 27)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/2.303616
<p>Effectively using shared-memory multiprocessors requires substantial programming effort. We present the programming language COOL (Concurrent Object-Oriented Language), which was designed to exploit coarse-grained parallelism at the task level in shared-memory multiprocessors. COOL's primary design goals are efficiency and expressiveness. By efficiency we mean that the language constructs should be efficient to implement and a program should not have to pay for features it does not use. By expressiveness, we imply that the program should flexibly support different concurrency patterns, thereby allowing various decompositions of a problem. COOL emphasizes the integration of concurrency and synchronization with data abstraction to ease the task of creating modular and efficient parallel programs. It is an extension of C++, which was chosen because it supports abstract data type definitions and is widely used.</p>
R. Chandra, J. L. Hennessy and A. Gupta, "COOL: An Object-Based Language for Parallel Programming," in Computer, vol. 27, no. , pp. 13-26, 1994.