Title :
COOL: An object-based language for parallel programming
Author :
Chandra, Rohit ; Gupta, Anoop ; Hennessy, John L.
Author_Institution :
Comput. Syst. Lab., Stanford Univ., CA, USA
Abstract :
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.<>
Keywords :
abstract data types; object-oriented languages; parallel languages; synchronisation; C++; COOL; Concurrent Object-Oriented Language; abstract data type definitions; concurrency patterns; data abstraction; design goals; efficiency; expressiveness; language constructs implementation; parallel programming language; problem decompositions; shared-memory multiprocessors; synchronization; task-level coarse-grained parallelism; Computer languages; Concurrent computing; Parallel processing; Parallel programming; Program processors; Programming environments; Programming profession; Protection; Runtime; Writing;