Encapsulation and behavioral inheritance in a synchronous model of computation for embedded system services adaptation. (English) Zbl 1080.68016

Summary: Because it encourages the incremental development of software and the reuse of code by abstracting away implementation details, object orientation is an intuitive and sensible way to conceive large software out of existing application components and libraries. In practice, however, object-orientation is most of the time applied and used with sequentiality in mind. This practice may sometimes be conceptually inadequate for, eg., control-dominated reactive system components.
We address this issue by proposing a process calculus that melts the paradigm of synchronous programming to key object-oriented features: encapsulation and behavioral inheritance with overriding by means of specific algebraic concurrency combinators. This framework provides support for the reuse of components and, more specifically, for the adaptation of embedded systems with new services.
Cast in the context of a strict interpretation of the synchronous hypothesis, the proposed model supports a static interpretation of inheritance: overriding is resolved at compile-time (or link-time) and inheritance combinators are translated into primitive synchronous ones. This compilation technique puts object-orientation to work in a syntax-oriented model of synchronous concurrency that naturally supports the incremental, refinement-based design of concurrent systems starting from encapsulated and reused application components.
The benefits of our approach are illustrated by a concrete and practical example: the adaptation of services to a plain old telephone service specification.


68N30 Mathematical aspects of software engineering (specification, verification, metrics, requirements, etc.)
68Q85 Models and methods for concurrent and distributed computing (process algebras, bisimulation, transition nets, etc.)


Esterel; SIGNAL
Full Text: DOI Link


[1] Abadi, M.; Cardelli, L., A theory of objects, (1996), Springer-Verlag · Zbl 0876.68014
[2] Atkinson, C., Object-oriented reuse, concurrency and distribution, (1991), ACM Press and Addison-Wesley · Zbl 0749.68016
[3] Benveniste, A.; Le Guernic, P.; Jacquemot, C., Synchronous programming with events and relations: the signal language and its semantics, Science of computer programming, 16, (1991) · Zbl 0745.68031
[4] Berry, G.; Gonthier, G., The esterel synchronous programming language: design, semantics, implementation, Science of computer programming, 19, (1992) · Zbl 0772.68013
[5] F. Boussinot, C. Laneve, Two Semantics for a Language of Reactive Objects Research report n. 2511. Inria, March 1995
[6] F. Boussinot, G. Doumenc, J.-M. Stefani, Reactive Objects Research report n. 2664. Inria, October 1995
[7] B. Caillaud, J.-P. Talpin, J.-M. Jézéquel, A. Benveniste, C. Jard BDL: A Semantics Backbone for UML Dynamic Diagrams Irisa/INRIA Rennes, research report RR-4003 2000
[8] C. Flanagan, M. Abadi, Object Types against Races Proceedings International Conference on Concurrency Theory (CONCUR 99) 1999
[9] C. Fournet, L. Maranget, C. Laneve, D. Rémy, Inheritance in the Join Calculus. In Foundations of Software Technology and Theoretical Computer Science. Lecture Notes in Computer Science v. 1974. Springer, 2000 · Zbl 1035.03011
[10] C. Fournet, G. Gonthier, The Reflexive CHAM and the Join-CalculusProceedings of the 23rd ACM Symposium on Principles of Programming Languages 1996
[11] A.D. Gordon, P.D. Hankin, A Concurrent Object Calculus: Reduction and Typing Proceedings High-Level Concurrent Languages (HLCL 98) 1998 · Zbl 0917.68064
[12] N. Halbwachs, P. Caspi, P. Raymond, D. Pilaud, The synchronous data-flow programming language Lustre. In Proceedings of the Ieee, v. 79(9). Ieee, 1991
[13] Harel, D., Statecharts: a visual formalism for complex systems, Science of computer programming, 8, (1987) · Zbl 0637.68010
[14] M. Kerbœuf, Orientation objet d’un calcul de processus synchrones. Thèse de doctorat. Universit de Rennes 1, December 2002
[15] B. Meyer, Systematic Concurrent Object-Oriented Programming ISE, TR-EI-37/SC 1993
[16] R. Milner, The Polyadic \(\pi\)-Calculus: A Tutorial Logic and Algebra of Specification, Proceedings of International NATO Summer School 1991
[17] Milner, R., Communicating and concurrency, (1989), Prentice-Hall International
[18] B.C. Pierce, D.N. Turner, Concurrent Objects in a Process Calculus In Proceedings Theory and Practice of Parallel Programming (TPPP 94) Takayasu Ito and Akinori Yonezawa, 1995, pp. 187-215
[19] A. Pnueli, N. Shankar, E. Singerman, Fair synchronous transition systems and their liveness proofs. In International School and Symposium on Formal Techniques in Real-time and Fault-tolerant Systems. Lecture Notes in Computer Science v. 1468. Springer Verlag, 1998
[20] B.C. Pierce, D.N. Turner Concurrent Objects in a Process Calculus Proceedings Theory and Practice of Parallel Programming (TPPP 94) 1994
[21] J.-P. Talpin, Model checking robustness to desynchronization. In Distributed and parallel embedded systems, IFIP World Computer Congress. Kluwer Academic Publishers, August 2002
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. It attempts to reflect the references listed in the original paper as accurately as possible without claiming the completeness or perfect precision of the matching.