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}
}
  • P. B. Hansen
  • Published in HOPL Preprints 1993
  • Computer Science
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… 
From Monitors to Monitors: an Early History of Concurrency Primitives
199) As computers became multi-component systems in the 1950s, handling the speed differentials efficiently was identified as a major challenge. The desire for better understanding and control of
pmonpp: Pthread Monitor Preprocessor
TLDR
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
TLDR
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
  • Jinhua Guo, S. Seely
  • Computer Science
    34th Annual Frontiers in Education, 2004. FIE 2004.
  • 2004
TLDR
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
TLDR
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
TLDR
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
TLDR
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
Java has resurrected the well-known idea of platform-independent parallel programming. In this paper I examine the synchronization features of Java to discover their origin and determine if they live
The invention of concurrent programming
TLDR
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
TLDR
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.
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 147 REFERENCES
The purpose of concurrent Pascal
TLDR
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.
Use of concurrent Pascal in systems programming teaching
TLDR
The aims and contents of the courses, and their impact on participants abilities as system designers and programmers are described, and alternatives to Concurrent Pascal are discussed.
Experience with Modular Concurrent Programming
  • P. B. Hansen
  • Computer Science
    IEEE Transactions on Software Engineering
  • 1977
TLDR
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.
Experience with processes and monitors in Mesa
TLDR
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 multi‐user operating system for transaction processing, written in Concurrent Pascal
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
A FORTRAN implementation of Concurrent Pascal
TLDR
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
TLDR
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
TLDR
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
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
TLDR
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.
...
1
2
3
4
5
...