A Caltech Library Service

Concurrent Programming Concepts

Hansen, Per Brinch (1973) Concurrent Programming Concepts. ACM Computing Surveys, 5 (4). pp. 223-245. ISSN 0360-0300. doi:10.1145/356622.356624.

Full text is not posted in this repository. Consult Related URLs below.

Use this Persistent URL to link to this item:


This paper describes the evolution of language features for multiprogramming from event queues and semaphores to critical regions and monitors. It suggests that the choice of language concepts should be guided by two simple principles: First, it should be possible to understand a concurrent program in time-independent terms by an effort proportional to its size; secondly, it should be possible to state assumptions about invariant relationships among program components and have these assumptions checked automatically. The central problems of multiprogramming are illustrated by annotated algorithms written in a well-structured programming language.

Item Type:Article
Related URLs:
URLURL TypeDescription
Additional Information:© 1973 ACM.
Subject Keywords:structured multiprogramming, programming languages, operating systems, programming errors, resource protection, compile-time checking, correctness proofs, sequential and concurrent processes, synchronising events, semaphores, shared data, mutual exclusion, critical regions, monitors
Issue or Number:4
Classification Code:CR categories: 4.22, 4.31, 4.32, 5.24
Record Number:CaltechAUTHORS:20161102-150018753
Persistent URL:
Official Citation:Per Brinch Hansen. 1973. Concurrent Programming Concepts. ACM Comput. Surv. 5, 4 (December 1973), 223-245. DOI=
Usage Policy:No commercial reproduction, distribution, display or performance rights in this work are provided.
ID Code:71687
Deposited On:02 Nov 2016 23:50
Last Modified:11 Nov 2021 04:49

Repository Staff Only: item control page