Monitors and Concurrent Pascal: A Personal History
@inproceedings{Hansen1993MonitorsAC, title={Monitors and Concurrent Pascal: A Personal History}, author={Per Brinch Hansen}, booktitle={HOPL Preprints}, year={1993} }
This is a personal history of the early development of the monitor concept and its implementation in the programming language Concurrent Pascal. The paper explains how monitors evolved from the ideas of Dahl, Dijkstra, Hoare, and the author (1971--1973). At Caltech the author and his students developed and implemented Concurrent Pascal and used it to write several model operating systems (1974--1975). A portable implementation of Concurrent Pascal was widely distributed and used for system…
44 Citations
From Monitors to Monitors: an Early History of Concurrency Primitives
- Computer Science
- 2021
This story shows the effects of grappling with the power brought by concurrency while trying to manage greater conceptual (and textual) complexity.
pmonpp: Pthread Monitor Preprocessor
- Computer Science
- 2006
A monitor preprocessor for Pthreads is designed and implemented that provides explicit support for monitors in P threads that makes it hard to teach the monitor concept in class and explain the semantic differences between monitors and semaphores.
Concurrent Object-Oriented Programming: The MP-Eiffel Approach
- Computer ScienceJ. Object Technol.
- 2004
An abstract notion of “processor” adapted from Meyer is used, which can be thought as the concurrent execution of sequential “programs”, one for each processor (of course, they may depend highly on each other).
Monitor preprocessor for Pthreads
- Computer Science34th Annual Frontiers in Education, 2004. FIE 2004.
- 2004
A monitor preprocessor for Pthreads is designed and implemented that provides explicit support for monitors in P threads that makes it hard to teach the monitor concept in class and explain the semantic differences between monitors and semaphores.
SHIM: A Deterministic Approach to Programming with Threads
- Computer Science
- 2006
This paper proposes SHIM, the core of a concurrent language with disciplined shared variables that remains deterministic, meaning the behavior of a program is independent of the scheduling of concurrent operations.
Scheduling-independent threads and exceptions in SHIM
- Computer ScienceEMSOFT '06
- 2006
This paper proposes SHIM, the core of a deterministic concurrent language, meaning the behavior of a program is independent of the scheduling of concurrent operations, and provides the formal semantics of SHIM and a pre-liminary implementation.
Synchronization cannot be implemented as a library
- Computer Science
- 2012
It is shown that high-level synchronization constructs, such as those provided by Java and Ada, are general enough to allow an enhanced compiler to automatically generate the appropriate lock-free synchronization code for the target system.
JAVA ’ S INSECURE PARALLELISM PER BRINCH HANSEN
- Computer Science
- 2005
This paper examines the synchronization features of Java to discover their origin and determine if they live up to the standards set by the invention of monitors and Concurrent Pascal a quarter of a century ago.
The invention of concurrent programming
- Art
- 2002
The author summarizes the classic papers and puts them in historical perspective of the pioneering era of the field from the semaphores of the mid 1960s to the remote procedure calls of the late 1970s.
Practical framework for contract-based concurrent object-oriented programming
- Computer Science
- 2007
This dissertation is a report from a research journey into the fascinating world of object-oriented programming and Design by Contract to discover simple and convenient techniques for building high-quality concurrent systems.
References
SHOWING 1-10 OF 147 REFERENCES
The purpose of concurrent Pascal
- Computer ScienceReliable Software
- 1975
The main contribution of Concurrent Pascal is to extend the monitor concept with an explicit hierarchy of access rights to shared data structures that can be stated in the program text and checked by a compiler.
Experience with Modular Concurrent Programming
- Computer ScienceIEEE Transactions on Software Engineering
- 1977
This paper summarizes the initial experience with the programming language Concurrent Pascal in the design of three model operating systems and emphasizes that the creative aspect of program construction is the initial selection of modules and the connection of them into hierarchical structures.
A multi‐user operating system for transaction processing, written in Concurrent Pascal
- Computer ScienceSoftw. Pract. Exp.
- 1982
This paper presents a medium‐sized operating system written in Concurrent Pascal, thereby describing further experience with this language and giving further indications of its scope. The operating…
Experience with processes and monitors in Mesa
- Computer ScienceCACM
- 1980
These problems are addressed by the facilities described here for concurrent programming in Mesa, and experience with several substantial applications gives us some confidence in the validity of the solutions.
A FORTRAN implementation of Concurrent Pascal
- Computer ScienceSoftw. Pract. Exp.
- 1982
The transportation of sequential and concurrent Pascal from the SOLO distribution tape to a non‐PDP‐11 like mainframe (IBM 370/145) and an interpreter for the idealized virtual machine was written in FORTRAN.
The trio operating system
- Computer ScienceSoftw. Pract. Exp.
- 1980
This work concludes 5 years of experience with the first abstract language for concurrent programming, Concurrent Pascal, used on a PDP 11/55 minicomputer since spring 1979.
Concurrent Programming Concepts
- Computer ScienceCSUR
- 1973
The evolution of language features for multiprogramming from event queues and semaphores to critical regions and monitors is described and it is suggested that the choice of language concepts should be guided by two simple principles.
Monitors: an operating system structuring concept
- Computer ScienceCACM
- 1974
This paper develops Brinch-Hansen's concept of a monitor as a method of structuring an operating system. It introduces a form of synchronization, describes a possible method of implementation in…
Concepts and Notations for Concurrent Programming
- Computer ScienceCSUR
- 1983
This paper identifies the major concepts and describes some of the more important language notations for writing concurrent programs and three general classes of concurrent programming languages are identified and compared.