Browse Prior Art Database

Original Publication Date: 1982-Dec-31
Included in the Prior Art Database: 2007-Mar-28
Document File: 26 page(s) / 1M

Publishing Venue

Software Patent Institute

Related People

Bryant, Randal E.: AUTHOR [+3]


CONCURRENT PROGRAMMING Randal E. BlyantCalifornia Institute of Technology and Jack B . DennisMassachusetts Institute of Technology This paper will appear in

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 6% of the total text.

Page 1 of 26

California Institute
of Technology
Jack B . Dennis
Massachusetts Institute of Technology

This paper will appear in

"Operating Systems Engineering,lt
M. Maekawa, ed.,

Springer-Verlag, 1982

O California Institute of Technology, 1982

[This page contains 1 picture or other non-text object]

Page 2 of 26

[This page contains 1 picture or other non-text object]

Page 3 of 26

order in which the requests are received and processed. Wondeterminacy is essential
in many concurrent systems.

    The need for high level programming languages which can express the operation
of a system of concurrent processes has led to the development of programming
constructs with which one can express these communication and synchronization
operations. Some of these approaches, such as semaphores [13] and monitors
[6,7,19], suppose systems in which all processes have access to a single, shared
memory. Others assume that processes communicate by sending messages to one another
[4,20,24]. Languages based on actor semantic.8 [15,16,17] carry the message-paseing
concept even further by considering all primitive operations to be carried out by
separate, message-passing processes. Other approaches to concurrent programming
have been developed which, instead of viewing a system as a number of communicating,
sequential processes, view a program as an unordered set of instructions and permit
an instruction to be executed any time its operands are ready. This form of program
execution can potentially achieve a higher degree of concurrency than is possible
with sequential processes, Languages based on this approach are called data flow
languages [1,2,11,25,27].

    Several issues must be considered when designing progradng languages to
support concurrent computation. Of primary importance is expressive power. The
expressive power of a language, in the context of concurrent systems, means the
forms of concurrent operations, and the types of communication, synchronization, and
nondeterminacy which can be expressed in the language.
A language which lacks
expressive power will force the programmer to rely on a suitable set of operating
system routines to implement desired behaviors.
A properly designed language, on
the other hand, should have sufficient richness to express these functions directly.
Furthermore, if the language lacks expressive power, a programmer may need to resort
to awkward or inefficient programming techniques to achieve desired results.

   A second issue in the design of 'a language for concurrent programming is the
clarity of programs written in the language, that is, how easily the effect of.
executing a program can be understood by looking at the program.
A properly
designed language can provide a programmer with the tools needed to write clear and
concise programs. To meet this goal, the language must allow programs to
be written