This Article 
 Bibliographic References 
 Add to: 
BDL: A Specialized Language for Per-Object Reactive Control
May/June 1999 (vol. 25 no. 3)
pp. 347-362

Abstract—The problem of describing the concurrent behavior of objects in object-oriented languages is addressed. The approach taken is to let methods be the behavior units whose synchronization is controlled separate from their specification. Our proposal is a domain-specific language, called BDL, for expressing constraints on this control and actually implementing its enforcement. We propose a model where each object includes a so-called “execution controller,” programmed in BDL. This separates cleanly the concepts of what the methods do, the object processes, from the circumstances in which they are allowed to do it, the control. The object controller ensures that scheduling constraints between the object's methods are met. Aggregate objects can be controlled in terms of their components. This language has a convenient formal base. Thus, using BDL expressions, behavioral properties of objects or groups of interesting objects can be verified. Our approach allows, for example, deadlock detection or verification of safety properties, while maintaining a reasonable code size for the running controller.

A compiler from BDL has been implemented, automatically generating controller code in an Esterel program, i.e., in a reactive programming language. From this code, the Esterel compiler, in turn, generates an automaton on which verifications are done. Then this automaton is translated into a C code to be executed. This multistage process typifies the method for successful use of a domain-specific language. This also allows high-level concurrent programming.

[1] M. Tokoro, “The Society of Objects,” Addendum Proc. OOPSLA'93, invited address, Washington, D.C., ACM, pp. 3–11, Oct. 1993.
[2] B. Meyer, "Systematic Concurrent Object-Oriented Programming," Comm. ACM, vol. 36, no. 9, Sept. 1993.
[3] M. Augeraud, “A Reactive Part to Specify Dynamic Object Behavior,” Indo-French Workshop Object-Oriented Systems, Nov. 1992.
[4] F. Bertrand and M. Augeraud, “Control of Object Behavior: Asynchronous Reactive Objects,” Proc. Int'l Conf. Data and Knowledge Systems for Manufacturing and Eng., Chinese Univ. of Hong Kong, Hong Kong, pp. 539–544, May 1994. http://www-l3i.
[5] M. Papathomas, “Language Design Rationale and Semantic Framework for Concurrent Object-Oriented Programming,” PhD thesis, Universitéde Genève, Jan. 1992. ftp://cui.
[6] K. Arnold and J. Gosling, The Java Programming Language. Addison-Wesley, 1996.
[7] A. Goldberg and D. Robson, Smalltalk 80: The Language and Its Implementation.Reading, Mass.: Addison Wesley, 1983.
[8] H.E. Bal, Programming Distributed Systems, SIPR, first edition 1990.
[9] P. America, “pool-t: A Parallel Object-Oriented Language,” Research Directions in Object-Oriented Programming, B.D. Shriver and P. Wegner, eds., pp. 199–220, Cambridge, Mass.: MIT Press, 1987.
[10] C. Tomlinson and V. Singh, “Inheritance and Synchronization with Enabled-Sets,” Proc. OOPSLA'89, pp. 103–112, New Orleans, La., Oct. 1989.
[11] C. Colby, L. Jategaonkar Jagadeesan, R. Jagadeesan, K. Läufer, and C. Puchol, “Design and Implementation of Triveni: A Process-Algebraic API for Threads+Events,” Proc. IEEE Int'l Conf. Computer Languages, IEEE CS Press, 1998.
[12] D. Caromel, "Toward a Method of Object-Oriented Concurrent Programming," Comm ACM, vol. 36, no. 9, Sept. 1993.
[13] F. Cassez and O. Roux, “Compilation of the Electre Reactive Language into Finite Transition Systems,” Theoretical Computer Science, vol. 146, July 1995.
[14] A.M.D. Moreira, “Rigorous Object-Oriented Analysis,” PhD thesis, Dept. of Computing Science and Mathematics, Univ. of Stirling, Stirling FK9 4LA, Aug. 1994. uk/pub/tr/cs/
[15] T. Hartmann, R. Jungclaus, and G. Saake, “Aggregation in a Behavior Oriented Object Model,” O.L. Madsen, ed., Proc. ECOOP '92, European Conf. Object-Oriented Programming, pp. 57-77, Springer, 1992.
[16] C. Mac Hale, “Synchronisation in Concurrent, Object-Oriented Languages: Expressive Power, Genericity and Inheritance,” PhD thesis, Dept. of Computer Science, Trinity College, Univ. of Dublin, Ireland, Oct. 1994.
[17] N. Halbwachs, Synchronous Programming of Reactive Systems. Kluwer Academic Publishers, 1993.
[18] G. Berry and G. Gonthier, "The ESTERELSynchronous Programming Language: Design, Semantics, Implementation," Science of Computer Programming, vol. 19, no. 2, pp. 87-152, 1992.
[19] D. Harel, “Statecharts: A Visual Approach to Complex Systems,” Science of Computer Programming, Vol. 8, No. 3, pp. 231–274, 1987.
[20] G. Berry, S. Ramesh, and R.K. Shyamasundar, “Communicating Reactive Processes,” Proc. 20th, ACM Conf. Principles of Programming Languages, pp. 85–98, Charleston, South Carolina, Jan. 1993.
[21] F. Bertrand, “Un modèle de contrôle réactif pour les langagesàobjets concurrents,” PhD thesis, Universitéde La Rochelle, Cedex, France, Jan. 1996.
[22] E.M. Sentovich, K.J. Singh, L. Lavagano, C. Moon, R. Murgai, A. Saldanha, H. Savoj, P.R. Stephan, R.K. Brayton, and A. Sangiovanni-Vincentelli, “SIS: A System for Sequential Circuit Synthesis,” technical report, Univ. of Calif., Berkeley, May 1992.
[23] E.C. Cooper and R.P. Draves, C Threads, Dept. of Computer Science, Carnegie Mellon Univ., Sept. 1990.
[24] E. Sheinbrood, The Design of the Mach Operating System. Prentice Hall, Feb. 1993.
[25] B. Stroustrup,The C++ Programming Language. Reading MA: Addison-Wesley, 1991, 2nd ed.
[26] L. Lamport, “What Good is Temporal Logic?” Information Processing 83, Elsevier Science, ed., IFIP, pp. 657–668, NorthHolland, 1983.
[27] L.J. Jagadeesan, C. Puchol, and J.E. von Olnhausen, “Safety Property Verification of Esterel Programs and Applications to Telecommunications Software,” Proc. Conf. Computer-Aided Verification 1995, Liège, Belgium, July 1995.
[28] A. Bouali, “Xeve: An Esterel Verification Environment,” Technical Report 0214, INRIA, Dec. 1997. cs. utexas. edu/ users/cpg/TempEst/doc/ /ftp-sop. inria. fr/meije/
[29] J.P. Briot and R. Guerraoui, “Objets, Parallélisme et Répartition,” Technique et Science Informatiques vol. 15, no. 6, pp. 765–800, 1996.
[30] J.P. Briot, “Actalk: A Testbed for Classifying and Designing Actor Languages in Smalltalk-80 Environment,” Proc. ECOOP'89, pp. 109–129, Cambridge Univ. Press, 1989.
[31] H. Lieberman, “Concurrent Object-Oriented Programming in Act 1,” Object-Oriented Concurrent Programming, A. Yonezawa and M. Tokoro, eds., Computer System, pp. 9–36, 1987.
[32] G. Agha and C. Hewitt, “Concurrent Programming Using Actors,” Object-Oriented Concurrent Programming, A. Yonezawa and M. Tokoro, eds., pp. 37–53, Cambridge, Mass.: Cambridge MIT Press, 1987.
[33] J. Ferber and P. Carle, “Actors and Agents as Reflexive Concurrent Objects: A Mering IV Perspective,” IEEE Trans. Systems, Man and Cybernetics, vol. 21, no. 6, 1991.
[34] D. Decouchant, S. Krakowiak, M. Meysembourg, M. Riveil, X. Rousset de Pina, “A Synchronization Mechanism for Typed Objects in a Distributed System,” ACM SIGPLAN Notices, vol. 24, no. 4, Apr. 1989.
[35] O. Nierstrasz, “Active Objects in Hybrid,” ACM SIGPLAN Notices vol. 22, no. 12, pp. 243–253, Dec. 1987.
[36] P. Robert and J.-P. Verjus, “Toward Autonomous Descriptions of Synchronization Modules,” Information Processing 77, B. Gilchrist, ed., pp. 981–986, NorthHolland, 1977.
[37] S. Crespi Reghizzi, G. Galli de Paratesi, and S. Genolini, “Definition of Reusable Concurrent Software Components,” Proc. of ECOOP'91, pp. 148–166, Geneva, Switzerland, Springer-Verlag, July 1991.
[38] R.H. Campbell and N. Haberman, The Specification of Process Synchronization by Path Expressions, pp. 89–102, Springer-Verlag Dec. 1973.
[39] J. van den Bos and C. Laffra, “Procol: A Concurrent Object-Oriented Language with Protocols Delegation and Constraints,” Acta Informatica, vol. 28, no. 6, pp. 511–538, 1991.
[40] F. Bertrand and M. Augeraud, “Asynchronous Reactive Objects: An Attempt to Control the Object Behavior,” Poster in Proc. OOPSLA'94, Portland, Oct. 1994.
[41] D. Caromel, Y. Roudier, “Reactive Programming in Eiffel/ /,” Object-Based Parallel and Distributed Computation OBPDC'95, J-P. Briot, J-M. Geib, and A. Yonezawa, eds., Lecture Notes in Computer Science, vol. 1,107, pp. 125–147, Springer-Verlag, June 1995.
[42] D. Coleman, F. Hayes, and S. Bear, "Introducing Objectcharts, or How to Use Statecharts in Object Oriented Design," IEEE Trans. Soft. Eng., Jan. 1992, pp. 9-18.
[43] F. Boulanger, “Intégration de Modules Synchrones dans la Programmation par Objets,” PhD thesis, Ecole Supérieure d'Electricité, Universitéde Paris-Sud, France, Dec. 1993.
[44] F. Boussinot, G. Doumenc, and J. B. Stephani, “Reactive Objects,” Technical Report RR-2664, INRIA, Cedex, France, Oct. 1995. postscripts/OBPDC'95.ps pub/
[45] C. Colby, L. Jategaonkar, Jagadeesan, R. Jagadeesan, K. Läufer, and C. Puchol, “Objects and Concurrency in Triveni: A Telecommunication Case Study in Java,” Proc. Conf. Object-Oriented Technologies and Systems (COOTS), 1998.
[46] S. Matsuoka, K. Taura, and A. Yonezawa, “Highly Efficient and Encapsulated Reuse of Synchronization Code in Concurrent Object-Oriented Languages,” Proc. OOPSLA'93, pp. 109–126, 1993.
[47] A. Rauzy, Toupie v. 0. 26 User's Manual LaBRI (URA 1304), 351, Cours de la Libération, Cedex, France, Oct. 1994. http://www.aBRI.U-Bordeaux.FR/rauzy/MyPublications

Index Terms:
Concurrent object-oriented programming, control of behavior, verification, reactive languages.
Frédéric Bertrand, Michel Augeraud, "BDL: A Specialized Language for Per-Object Reactive Control," IEEE Transactions on Software Engineering, vol. 25, no. 3, pp. 347-362, May-June 1999, doi:10.1109/32.798324
Usage of this product signifies your acceptance of the Terms of Use.