Programming distributed reactive systems: A strong and weak synchronous coupling
Reactive and real-time systems often require temporal and logical safety, concurrency and determinism. Several asynchronous and strong synchronous answers have been proposed to this problem. However, asynchronous languages such as CSP or CCS force the user to choose between determinism and concurrency, for they base concurrency on asynchronous implementation models where processes nondeterministically compete for computing resources. On the other hand, strong synchronous implementations are purely sequential. The aim of this paper is to present a new paradigm for reactive distributed programming, weak synchronism, responding to concurrency and determinism. We define a small language of communicating reactive kernels, and characterize it by an operational semantics. This semantics is then discussed w.r.t. three criteria, responsiveness, modularity and causality, formulated by C. Huizing in . We show that the weak synchronous paradigm provides a deterministic semantics of concurrency, and we propose finally an execution model on a distributed architecture.
KeywordsReal-time Reactive systems Synchronism and Asynchronism Semantics of Concurrency
Unable to display preview. Download preview PDF.
- 1.M. Adelantado, F. Boniol, M. Cubéro-Castan, N. Hifdi, B. Lécussan, V. David, and R. Porche. Projet SATURNE: Modèle de Programmation et Modèle d'Exécution pour un Système Temps-Réel d'Aide à la Décision. Technical Report 1/3447.00/DERI, CERT-ONERA, Dépt. d'Informatique, Toulouse, January 1993.Google Scholar
- 2.M. Adelantado, F. Boniol, V. David, B. Lécussan, and R. Porche. Predictability in Distributed Intelligent Real-Time Systems. In First IEEE Workshop on Parallel and Distributed Real-Time Systems, Newport Beach, California, April 1993.Google Scholar
- 3.A. Benveniste and G. Berry. The Synchronous Approach to Reactive and Real-Time Systems. Proceedings of IEEE, Another Look at Real-time programming, 79(9):1270–1282, September 1991.Google Scholar
- 4.G. Berry and G. Gonthier. The Esterel Synchronous Programming Language: Design, Semantics, Implementation. Technical Report 842, INRIA, May 1988.Google Scholar
- 5.G. Berry, S. Ramesh, and R.K. Shyamasundar. Communicating Reactive Processes. In Proc. of the 20th Annual Symp. on Principles of Programming Languages, 1993.Google Scholar
- 6.E.M. Clarke, D.E. Long, and K.L. McMillan. A Language for Compositional Specification and Verification of Finite State Hardware Controllers. Proceedings of IEEE, Another Look at Real-time programming, 79(9), September 1991.Google Scholar
- 7.G. Gonthier. Sémantiques et Sodèles d'Exécution des Langages Réactifs Synchrones; Application à Esterel. PhD thesis, Université d'Orsay, March 1988.Google Scholar
- 8.D. Harel. Statecharts: a Visual Formalism for Complex Systems. Science of Computer Programming, 8(3):231–275, 1987.Google Scholar
- 9.D. Harel and A. Pnueli. On the Development of Reactive Systems. In Logic and Models of Concurrent Systems. Proc NATO Advanced Study Institute on Logics and Models for Verification and Specification of Concurrent Systems (NATO ASI Series F vol. 13), 1985.Google Scholar
- 10.C. Huizing and R. Gerth. Semantics of Reactive Systems in Abstract Time. In Real-Time: Theory in Practice, REX Workshop, Mook The Netherlands, LNCS 600, pages 291–314, June 1991.Google Scholar
- 11.R. Milner. Calculi for Synchrony and Asynchrony. Theoretical Computer Science, 25(3), 1983.Google Scholar