CSP/k(ID:796/csp005)

Concurrent SP/k 


for Concurrent SP/k.

Holt et al Waterloo. 1975-8 Concurrent version of the SP/k educational subset dialects of PL/I, made by adding monitors after the fashion of Hoare


Related languages
SP/k => CSP/k   Augmentation of
TOPPS => CSP/k   Influence

References:
  • Menzel, R. G. "Concurrent SP/k: A Language Supporting Concurrent Processes", M.Sc. Thesis, Department of Computer Science, University of Toronto, July 1976. view details
  • Holt, R. C.; Graham, G. S.; Lazowska, E. D.; Scott, M. A. "Announcing CONCURRENT SP/k" pp65-68 view details Abstract: Concurrent SP/k (CSP/k) is a concurrent programming language obtained by adding monitors [Hoare 1974] to the SP/k subset of PL/I [Holt et al. 1977]. A CSP/k compiler that runs on the IBM System 360/370 is now available from the University of Toronto's Computer Systems Research Group, and a supporting textbook, Structured Concurrent Programming with Operating Systems Applications [Holt et al. 1978], has just been published by Addison-Wesley. Because we think that these materials will be of general interest to the programming community, we are taking this opportunity to describe them briefly.
    Since 1971, the introductory operating systems course at the University of Toronto has included substantial use of a concurrent programming language. Assignments have ranged from simple producer-consumer problems and the simulation of multiple-player card games (e.g., "Spoons") to the implementation of a sophisticated toy operating system involving multiprogramming, spooling, and virtual memory. Students have invariably reacted favorably to these assignments, and we feel that they are invaluable aids in reinforcing lecture material concerning process interaction and operating system structure.
    In our original concurrent programming language, TOPPS, processes communicated by requesting and releasing units of reusable and consumable resources with associated messages. (TOPPS is described in a technical report edited by Czarnik and Tsichritzis [1973].) Subsequently, a number of more disciplined synchronization and communication mechanisms were devised, and in early 1976, R. C. Holt and R. Menzel designed and implemented CSP/k by adding monitors to the SP/k language processor [Menzel 1976].
    CSP/k offers a number of educational advantages. First and foremost, the SP/k language processor upon which it is based provides efficient compilation and execution, reliability, and excellent diagnostics. The CSP/k extensions are minimal (six man-months for the design and implementation) and have withstood the test of several hundred graduate and undergraduate users over an eighteen month period. Monitors provide an elegant solution to a large number of real and toy synchronization problems, and are well documented in the literature.

          in SIGPLAN Notices 13(05) May 1978 view details
  • Holt, R.C. et al, "Structured Concurrent Programming with Operating System Applications", A-W 1978. view details Abstract: The textbook is designed to supplement any of the available operating
    systems texts, or to be the sole text for a more specialized course on concurrent programming, such as might be offered to incoming graduate students. Written for a senior undergraduate or beginning graduate student level, it can be used independently of the language processor.

    The book begins with a general discussion of processes, concurrency, and communication in operating systems. It then discusses a number of the conmmnication and synchronization mechanisms that have been proposed, along with concepts such as busy waiting, deadlock, race conditions, and starvation.

    After introducing SP/k and CSP/k, the book derives solutions to several problems in concurrency: the dining philosophers, the readers and writers problem, a disk arm scheduler, and buffer allocation for large messages. These examples lead naturally to a more severe test of the expressive power of the language: the design of a sophisticated toy operating system. The book concludes by describing a kernel for the PDP-Ii family that supports monitors. Finally, a set of appendices provides further details of SP/k, CSP/k, and the operating system project.
          in SIGPLAN Notices 13(05) May 1978 view details
  • Flass, Peter "Languages Related to PL/I" in "The PL/I Language" view details External link: Online copy at Peter Flass's PL/1 site
          in SIGPLAN Notices 13(05) May 1978 view details