Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

CONCURRENT PROGRAMMING

IP.com Disclosure Number: IPCOM000147828D
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]

Abstract

CONCURRENT PROGRAMMING Randal E. BlyantCalifornia Institute of Technology and Jack B . DennisMassachusetts Institute of Technology This paper will appear in "Operating Systems Engineering,lt M. Maekawa, ed., Springer-Verlag, 1982 O California Institute of Technology, 1982 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].

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

   CONCURRENT PROGRAMMING Randal E. Blyant
California Institute
of Technology
and
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
in...