Abstract
This paper presents how asynchronous reactive programming can be achieved in the Eiffel// language. Our approach makes use of some reflection available in the language and is based on a specific communication semantics. We present some reactive abstractions that can be programmed with this mechanism and illustrate their use. The technique we developed makes it possible to transform a sequential system of objects into a reactive one. A tape-recorder example illustrates the programming technique.
Preview
Unable to display preview. Download preview PDF.
References
M. Aksit, K. Wakita, J. Bosch, L. Bergmans, and A. Yonezawa. Abstracting Object Interactions Using Composition Filters. In O. Nierstrasz, R. Guerraoui, and M. Riveill, editors, Proceedings of the ECOOP '93 Workshop on Object-Based Distributed Programming, LNCS 791, pages 152–184. Springer-Verlag, 1994.
J.-P. Bahsoun, J.-P. Briot, D. Caromel, L. Féraud, O. Niestrasz, and P. Wegner. Panel: how could object-oriented concepts and parallelism cohabit ? In Proceedings of the 1994 International Conference on Computer Languages, pages 195–199, Toulouse, France, May 1994. IEEE Computer Society Press.
G. Berry, P. Gonthier, and G. Gonthier. Synchronous Programming of Reactive Systems: an Introduction to ESTEREL. Research report, INRIA, France, 1987.
F. Bertrand and M. Augeraud. Contrôle du comportement d'objets: les objets réactifs asynchrones. Rapport de Recherche No 93-3. Technical report, Laboratoire d'Informatique et d'Imagerie Industrielle, Université de la Rochelle, October 1993. In french.
F. Bertrand and M. Augeraud. Control of Object Behavior: Asynchronous Reactive Objects. May 1994. also available as http://www-13i.univ-lr.fr/ L3I/equipe/fbertran/ pub/dksme94.ps.gz.
F. Boulanger, H. Delebecque, and G. Vidal-Naquet, Intégration de modules synchrones dans un langage à objets. In RTS'94, 1994. In french.
F. Boussinot. Reactive C: An Extension of C to Program Reactive Systems. Software — Practice And Experience, 21(4):401–428, April 1991.
F. Boussinot, G. Doumenc, and J.-B. Stefani. Reactive Objects. Technical Report Technical report RR-2664, INRIA, October 1990.
R.A. Brooks. A Layered Intelligent Control System for a Mobile Robot. In O. Faugeras and G. Giralt, editors, Proceedings of the Third Robotics Research Symposium, 1986.
D. Caromel. Concurrency and Reusability: From Sequential to Parallel. Journal of Object-Oriented Programming, 3(3):34–42, September 1990.
D. Caromel. Programming Abstractions for Concurrent Programming. In J. Bezivin, B. Meyer, J. Potter, and M. Tokoro, editors, Technology of Object-Oriented Languages and Systems (TOOLS Pacific'90), pages 245–253. TOOLS Pacific, November 1990.
D. Caromel. Towards a Method of Object-Oriented Programming. CACM, 36(9), September 1993.
D. Caromel, F. Belloncle, and Y. Roudier. The C++// System. In Parallel Programming Using C++. G. Wilson and P. Lu ed., MIT Press, 1996. to appear.
D. Caromel and Y. Roudier. Programmation Réactive en Eiffel// (expression de synchronisations selon le modèle Electre). In Journées du GDR Programmation — Lille, September 1994. 10 pages. In french. http://alto.unice.fr/~roudier/RR95-10.ps.
D. Caromel, Y. Roudier, and O. Roux. Programmation Réactive en Eiffel// (expression de synchronisations selon le modèle Electre). Technical report, Rapport de Recherche I3S N∘ RR-93-70, December 1993. 100 pages. In french. http://alto.unice.fr/R~roudier/RR93-70.ps.
F. Cassez and O. Roux. Compilation of the ELECTRE Reactive Language into Finite Transition Systems. TCS (Theoretical Computer Science), 146, 1995.
D. Decouchant, P. Le Dot, M. Riveill, C. Roisin, and X. Rousset de Pina. A Synchronization Mechanism for an Object-Oriented Distributed System. In IEEE Eleventh International Conference on Distributed Computing Systems, 1991.
S. Frølund. Inheritance of Synchronization Constraints in Concurrent Object-Oriented Programming. In ECOOP '92 proceedings, June 1992.
D. Gangopadhyay and S. Mitra. ObjChart: Tangible Specification of Reactive Object Behavior. In O. Nierstrasz, editor, Proceedings ECOOP '93, LNCS 707, pages 432–457, Kaiserslautern, Germany, July 1993. Springer-Verlag.
N. Halbwachs, P. Caspi, P. Raymond, and D. Pilaud. The Synchronous Data Flow Programming Language LUSTRE. In Proceedings of the IEEE, pages 1305–1319, September 1991. Published as Proceedings of the IEEE, volume 79, number 9.
D. Harel. Statecharts: A Visual Formalism for Complex System. Science of Computer Programming, 8(3):231–274, 1987.
D. Harel and A. Pnueli. On the Development of Reactive Systems, volume 13, pages 477–498. In Logic and Models of Concurrent Systems, K.R. Apt ed., Springer-Verlag, 1985.
F. Hayes, D. Coleman, and S. Bear. Introducing ObjectCharts or How to Use Statecharts in Object-Oriented Design. IEEE Transactions on Software Engineering, 18(1):9–18, January 1992.
Y. Ishikawa, H. Tokuda, and C.W. Mercer. Object-Oriented Real-Time Language Design: Constructs for Timing Constraints. In Proceedings of ECOOP/OOPSLA '90, October 1990.
I. Jacobs, F. Montagnac, J. Bertot, D. Clément, and V. Prunet. The Sophtalk Reference Manual. Technical Report 150, INRIA, February 1993.
K.-P. Lohr. Concurrency Annotations Improve Reusability. In TOOLS USA'92, August 1992.
S. Matsuoka, K. Wakita, and A. Yonezawa. Synchronization Constraints With Inheritance: What is Not Possible — So What is ? Technical Report Technical report 10, The University of Tokyo, Department of Information Sciences, 1990.
C. Neusius. Synchronizing Actions. In ECOOP '91 proceedings, June 1991.
E. Shibayama. Reuse of Concurrent Object Descriptions. In A. Yonezawa and T. Ito, editors, Concurrency: Theory, Language, and Architecture. Springler Verlag, 1991.
K. Takashio and M. Tokoro. DROL: An Object-Oriented Programming Language for Distributed Real-Time Systems. In Proceedings of OOPSLA '92, 1992.
G. Vidal-Naquet and F. Boulanger. An Object Oriented Execution Model for Synchronous Modules. December 1994. Synchronous Languages Seminar, Invited Conference, Dagstuhl. Available as ftp://supelec.fr/ pub/cs/publications/ iscore.ps.
T. Watanabe and A. Yonezawa. Reflection in an Object-Oriented Concurrent Language. In Proceedings of OOPSLA'88, pages 306–315, September 1988.
A. Yonezawa, E. Shibayama, T. Takada, and Y. Honda. Modelling and Programming in an Object-Oriented Concurrent Language ABCL/1. In Object-Oriented Concurrent Computing. MIT Press, 1987.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Caromel, D., Roudier, Y. (1996). Reactive programming in Eiffel//. In: Briot, JP., Geib, JM., Yonezawa, A. (eds) Object-Based Parallel and Distributed Computation. OBPDC 1995. Lecture Notes in Computer Science, vol 1107. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-61487-7_25
Download citation
DOI: https://doi.org/10.1007/3-540-61487-7_25
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-61487-6
Online ISBN: 978-3-540-68672-9
eBook Packages: Springer Book Archive