Abstract
Recently, a series of process communication schemes based on message exchanges have been developed. Hoare's CSP is perhaps the most interesting one and is the base for concurrent features of modern languages (e.g. ADA, Occam, etc.).Several concurrency mechanisms have already been implemented in Modula-2 (signals, COBEGIN..COEND structure, message exchanges, etc.) but they have not completely fulfilled the Hoare's CSP scheme.In this paper a general implementation of CSP in Modula-2 is presented. Low level and modularity facilities of this language have been used to develop a kernel thus allowing the use of comunication primitives and nondeterministic selection.The original CSP scheme has been slightly modified by using port names instead of process names to specify communication.
- [1] Brinch Hansen, P.: The Programming Language Concurrent Pascal. IEEE T. S. E. SE-1 (2), 199-207. 1975.Google Scholar
- [2] Cerrada, J. A., Collado, M.: Distributed System Programming in Extended Pascal. Euromicro 85. Brusseles. 1985.Google Scholar
- [3] Cerrada, J. A., Collado, M.: An Experimental Implementation of the Communicating Sequential Processes Scheme. Mimi'85. Sant Feliu. 1985.Google Scholar
- [4] Dijkstra E. W.: Guarded Commands, Nondeterminacy, and Formal Derivation of Programs. Communications of ACM. 18, 8, 453-457. 1975. Google ScholarDigital Library
- [5] Gehani, N.: ADA, An Advanced Introduction. Prentice Hall. 1983. Google ScholarDigital Library
- [6] Hoare, C. A. R.: Communicating Sequential Processes. Comm. ACM 21 (8) 666-677. 1978. Google ScholarDigital Library
- [7] Hoare, C. A. R.: Communicating Sequential Processes. Prentice Hall. 1985. Google ScholarDigital Library
- [8] INMOS Limited.: Occam Programming Manual. Prentice Hall. 1984. Google ScholarDigital Library
- [9] Sewry, D. A.: Modula-2 Process Facilities. Sigplan Notices ACM, 19, 23-32. 1984. Google ScholarDigital Library
- [10] United States Department of Defense.: MIL-STD-1815A-1983: Reference Manual for the Ada Programmlng Language. American National Standard Institute. 1983. Google ScholarDigital Library
- [11] Wirth, N.: Programming in Modula-2 and Report of the Programming Language Modula-2. Springer-Verlag. 1982. Google ScholarDigital Library
- [12] Wirth, N.: Schemes for Multiprogramming and their implementation in Modula-2. Tech. Rep. 59. Institut für Informatik. ETH Zürich. 1984.Google Scholar
Index Terms
A Modula-2 implementation of CSP
Recommendations
A portable optimizing compiler for Modula-2
Proceedings of the SIGPLAN '84 symposium on compiler constructionA portable compiler for the Modula-2 programming language has been implemented with a simple, machine independent optimizer. The front end of the compiler generates a dialect of P-code, and the back end translates the P-code into machine language. The ...
Euclid and Modula
Both Euclid and Modula are programming languages based on Pascal and intended for writing system software such as operating system kernels. The further goals of each language, however, resulted in two rather different languages. Modula is meant to be ...
A portable optimizing compiler for Modula-2
SIGPLAN '84: Proceedings of the 1984 SIGPLAN symposium on Compiler constructionA portable compiler for the Modula-2 programming language has been implemented with a simple, machine independent optimizer. The front end of the compiler generates a dialect of P-code, and the back end translates the P-code into machine language. The ...
Comments