ABSTRACT
We present a new programming paradigm called Communicating Reactive Processes or CRP that unifies the capabilities of asynchronous and synchronous concurrent programming languages. Asynchronous languages such as CSP, OCCAM, or ADA are well-suited for distributed algorithms; their processes are loosely coupled and communication takes time. The ESTEREL synchronous language is dedicated to reactive systems; its processes are tightly coupled and deterministic, communication being realized by instantaneous broadcasting. Complex applications such as process of robot control require to couple both forms of concurrency, which is the object of CRP. A CRP program consists of independent locally reactive ESTEREL nodes that communicate with each other by CSP rendezvous. CRP faithfully extends both ESTEREL and CSP and adds new possibilities such as precise local watchdogs on rendezvous. We present the design of CRP, its semantics, a translation into classical process calculi for program verification, and application example, and implementation issues.
- 1.The Programming Language ADA Reference Manual. ANSI / MIL-STD-1815A, also Lecture Notes in Computer Science 155, Springer Verlag, }.983.Google Scholar
- 2.G. Berry. Real-time programming: General purpose or special-purpose languages. In G. Ritter, editor, Information Processing 89, pages 11-17. Elsevier Science Publishers B.V. (North Holland),, 1989.Google Scholar
- 3.G. Berry. Esterel on hardware. Philosophical Transaction Royal Society of London A, 339:87- 104, 1992. Google ScholarDigital Library
- 4.G. Berry. A hardware implementation of pure Esterel. Sadhana, Academy Proceedings in Engineering Sciences, Indian Academy of Sciences, 17(1):95-130, 1992.Google Scholar
- 5.G. Berry and G. Gonthier. The Esterel synchronous programming language: Design, ~emanties, implementation. Rapport de Recherche 842, INRIA, 1988. To appear in Science of Computer Programming. Google ScholarDigital Library
- 6.G. Boudol. Notes on algebraic calculi of processes. In K. Apt, editor, Logic and Models of Concurrent Systems. NATO ASI Series F13, 1985. Google ScholarDigital Library
- 7.G. Boudol, V. Roy, R. de Simone, and D. Vergamini. Process calculi, from theory to practice" Verification tools, in Automatic Verification Methods for Finite State Systems, LNCS ~07, pages 1-10. Springer-Verlag, 1990. Google Scholar
- 8.R. de Simone. Higher-level synchronising devices in Meije-SCCS. Theoretical Computer Science, 37:347-360, 1985.Google Scholar
- 9.B. Espiau and E. Coste-Mani~re. A synchronous approach for control sequencing in robotics applications. In Proc. IEEE International Workshop on Intelligent Motion, 1stambul, pages 503-508, 1990.Google ScholarCross Ref
- 10.P. Le Guernic, M. Le Borgne, T. Gauthier, and C. Le Maire. Programming real time applications with Signal. Another Look at Real Time Programming, Proceedings of the IEEE, Special issue, Sept. 1991.Google Scholar
- 11.N. Halbwachs, P. Caspi, and D. Pilaud. The synchronous dataflow programming language Lustre. Another Look at Real Time Programming, Proceedings of the IEEE, Special Issue, Sept. 1991.Google Scholar
- 12.D. Harel. Statecharts: a visual approach to complex systems. Science of Computer Programming, 8:231-274, 1987. Google ScholarDigital Library
- 13.C. A. R. Hoare. Communicating Sequential Processes. Prentice Hall, 1985. Google ScholarDigital Library
- 14.G. Jones and M. Goldsmith. Programming in Oc. cam 2. C.A.R. Hoare Series in Computer Science. Prentice Hall International. Google ScholarDigital Library
- 15.J-P. Paris. Execution de t~ches asynchrones depuis Esterel. Th~se d'informatique, Universit~ de Nice, 1992.Google Scholar
- 16.V. Roy and R. de Simone. Auto and Autograph. In R. Kurshan, editor, proceedings of Workshop on Computer Aided Verification, New-Brunswick, June 1990.Google Scholar
Index Terms
- Communicating reactive processes
Recommendations
Communicating sequential processes for distributed constraint satisfaction
CSPCONS is a programming language that supports program execution over multiple Prolog processes with constraints. The language is an extended version of Csp-ii, a version of Prolog that supports channel-based communicating processes and TCP/IP ...
Synchronization of communicating processes
Formalization of a well-defined synchronization mechanism can be used to prove that concurrently running processes of a system communicate correctly. This is demonstrated for a system consisting of many sending processes which deposit messages in a ...
Comments on “Communicating Sequential Processes”
In his recent paper, “Communicating Sequential Processes” (Comm. ACM 21, 8 (Aug. 1978), 666-677), C.A.R. Hoare outlines a programming language notation for interprocess communication in which processes are synchronized by the messages they exchange. The ...
Comments