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
References: in SIGPLAN Notices 23(01) January 1988 view details 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, 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 in The Computer Journal 33(2) April 1990 Special issue on procedural programming view details |