Concurrent Pascal-S(ID:7023/con044)

Concurrent Pascal dialect  





Related languages
Concurrent Pascal => Concurrent Pascal-S   Influence
Pascal-S => Concurrent Pascal-S   Extension of

References:
  • Ben-Ari, M. Principles of Concurrent Programming, Prentice-Hall, 1982. view details Extract:
    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.
  • Davies, G. L. "Developments in Pascal-FC." view details 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
    Resources