Pascal-FC(ID:1581/pas012)



Teaching language, for introduction to concurrent programming.

Derived from Pascal-S, provides several types of concurrency: semaphores, monitors, both occam/CSP-style and Ada-style rendezvous.


Related languages
Pascal-S => Pascal-FC   Derivation of

References:
  • Burns, A. and G. Davies "Pascal-FC: a language for teaching concurrent programming." view details
          in SIGPLAN Notices 23(01) January 1988 view details
  • Davies, G. L. "Developments in Pascal-FC." view details Abstract: This paper reports additions to Pascal-FC, a language designed to provide students of concurrent programming with practical experience of a variety of interprocess communication primitives. An earlier report in this journal described the facilities for using semaphores, monitors and an occam\slash CSP-style rendezvous. To these facilities have now been added an Ada-style rendezvous. An improved post-mortem dump has also been included. Extract: Introduction
    Introduction.
    In a recent article, Boddy, while stressing the need to provide students of concurrent programming with practical experience, pointed to the difficulty of doing so. In particular, though courses on concurrent programming usually consider a variety of schemes for inter-process communication, he suggested that no one language provided an adequate variety of inter-process communcation primitives. Hence it would appear that several different languages must be used to obtain such experience. The need to master several languages would clearly impose a burden on students which would divert their attention from the specific problems of concurrent programming.
    In discussing what is currently available, Boddy refers to the concurrent Pascal-S developed by Ben Ari. He suggests that systems such as this "do not offer a realistic example of implementation". Perhaps this is not surprising, since:
    "Concurrent programming is the name given to program notation and techniques for expressing potential parallelism and for solving the resulting synchronisation and communication problems. Implementation of parallelism is a topic in computer systems (hardware and software) that is essentially independent of concurrent programming. Concurrent programming is important because it provides an abstract setting in which to study parallelism without getting bogged down in the implementation details." (P 4)
    We see, then, that Ben Ari purposely avoids questions of hnplementation in order to concentrate his attention on other issues. Boddy's own approach is, of course, perfectly legitimate, and he has clearly provided a valuable teaching tool. However, Ben Ari and Boddy have different goals, and their systems therefore take different approaches.
    It may certainly be argued that Ben Ari's system could be improved as a vehicle for teaching abstract concurrency. The following points come to mind:
  • There is, as Boddy asserts, an insufficient variety of inter-process communcation primitives, since only semaphores are included.
  • As variables declared as semaphores are treated intemaUy as integers, it is possible for students to abuse them by using them in arithmetic expressions, assigning arbitrary values to them at any point in a program, or passing them as value parameters to processes.
  • On incorrect termination of a program (due, for example, to deadlock), the post-mortem information provided by the interpreter is at a low level.
    There is, however, an alternative to Ben Ari's system. Bums and Davies 3 described Pascal-FC, which was intended to provide practical experience in the teaching of Computer Science and Electrical Engineering students. It was based on the same philosophy as Ben Ari's system, but added monitors and an occarn/CSP type rendezvous (including a selective waiting construct) to the semaphores which had been provided in that system. In addition, the implementation of semaphores had been tightened up, so that abuses of the type noted earlier resulted in compile-time error messages. Further developments have been undertaken since the first report; for example, the post-mortem dump has been significantly improved. Perhaps the most important new development, however, is the addition of Ada-style interprocess communication, and it is the purpose of this paper to describe these features.
          in SIGPLAN Notices 24(06) June 1989 view details
  • Davies, G.L. et al, "The Teaching Language Pascal-FC" pp147-154 view details
          in The Computer Journal 33(2) April 1990 Special issue on procedural programming view details