Implementing data abstractions and monitors in UCSD Pascal

  title={Implementing data abstractions and monitors in UCSD Pascal},
  author={David E. Boddy},
  journal={ACM SIGPLAN Notices},
  • D. Boddy
  • Published 1 May 1983
  • Computer Science
  • ACM SIGPLAN Notices
Numerous modern programming languages provide constructs for implementing data abstractions and monitors. This paper discusses practical techniques for realizing these programming constructs in the UCSD dialect of Pascal. Although the Pascal language as defined by Wirth [Jen74] is not amenable to the use of these programming constructs, the extensions provided by the UCSD dialect [Cla82] provide an excellent basis for implementing both data abstractions and monitors. 
The implementation kit with monitors
This note describes the modi f icat ions necessary to incorporate Monitors d i r e c t l y into the language.
A modula‐2 kernel for supporting monitors
  • P. Terry
  • Computer Science
    Softw. Pract. Exp.
  • 1986
This paper discusses an implementation of monitors using a kernel written in Modula‐2, and finds the monitor concept has been found suitable for the design of several practical operating systems.
Modern Multithreading : Implementing, Testing, and Debugging Multithreaded Java and C++/Pthreads/Win32 Programs
This textbook examines languages and libraries for multithreaded programming. Readers learn how to create threads in Java and C++, and develop essential concurrent programming and problem-solving
A Course on Software Enigneering for Concurrent Systems
  • K. Tai
  • Computer Science
  • 1988
This paper describes a graduate level course that covers concepts, techniques and tools for the specification, design, coding, and validation of concurrent software. This course is intended to
Replay and testing for concurrent programs
The purpose of deterministic execution debugging to to replay executions of a concurrent program so that debugging information can be collected and the process of designing replay tubes is described.
Modula-2 and the monitor concept
The monitor concept [Hoa74] is one approach towards ensuring a reliable concurrent programming environment that encapsulates the shared data area and the procedures that will act on this data.
On the design of monitors with priority conditions
This paper investigates the implementation of priority conditions for monitors under UCSD Pascal and proposes two such status queries which are both useful and efficient and it is shown that the Implementation of Hoare's "alarmclock" monitor is made simpler and more efficient through the use of these queries.
Signalling regions: Multiprocessing in a shared memory reconsidered
This paper will re‐examine the monitor concept in its original context and proposes a language structure called a signalling region that together with the notion of encapsulation by modules solves the immediate resumption problem and avoids the nested monitor problem.


Abstraction mechanisms in CLU
This paper provides an introduction to the abstraction mechanisms in CLU and illustrates the utility of the three kinds of abstractions in program construction and shows how CLU programs may be written to use and implement abstractions.
The case against Pascal as a teaching tool
The overuse of global variables dictated by the existence of nested scope is compared to the undisciplined use of the goto statement.
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