BDL: A Specialized Language for Per-Object Reactive Control

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]  Frédéric Bertrand Un modèle de contrôle réactif pour les langages à objets concurrents , 1996 .

[2]  Derek Coleman,et al.  Introducing Objectcharts or how to use Statecharts in object-oriented design , 1992 .

[3]  Denis Caromel,et al.  Toward a method of object-oriented concurrent programming , 1993, CACM.

[4]  Gul A. Agha,et al.  Concurrent object-oriented programming , 1993, CACM.

[5]  R. Guerraoui,et al.  Objets pour la programmation parallèle et répartie: Intérêts, évolutions et tendances , 1996 .

[6]  Pierre America,et al.  Pool-T: a parallel object-oriented language , 1987 .

[7]  Denis Caromel,et al.  Reactive Programming in Eiffel// , 1995, OBPDC.

[8]  Franck Cassez,et al.  Compilation of the ELECTRE Reactive Language into Finite Transition Systems , 1995, Theor. Comput. Sci..

[9]  Michel Augeraud,et al.  CONTROL OF OBJECT BEHAVIOR : ASYNCHRONOUS REACTIVE OBJECTS , 1994 .

[10]  Michael Papathomas,et al.  Language Design Rationale and Semantic Framework for Concurrent Object-Oriented Programming , 1992 .

[11]  Leslie Lamport,et al.  What Good is Temporal Logic? , 1983, IFIP Congress.

[12]  C. Tomlinson,et al.  Inheritance and Synchronization with Enabled Sets , 1989, OOPSLA.

[13]  P. R. Stephan,et al.  SIS : A System for Sequential Circuit Synthesis , 1992 .

[14]  Jan van den Bos,et al.  A concurrent object-oriented language with protocols delegation and constraints , 2005 .

[15]  Jacques Ferber,et al.  Actors and agents as reflective concurrent objects: a MERING IV perspective , 1991, IEEE Trans. Syst. Man Cybern..

[16]  La RochelleCedex CONTROL OF OBJECT BEHAVIOR : ASYNCHRONOUS REACTIVE OBJECTS , 1994 .

[17]  Derek Coleman,et al.  Introducing Objectcharts or How to Use Statecharts in Object-Oriented Design , 1992, IEEE Trans. Software Eng..

[18]  Lalita Jategaonkar Jagadeesan,et al.  Safety Property Verification of ESTEREL Programs and Applications to Telecommunications Software , 1995, CAV.

[19]  Robert G. Clark,et al.  Rigorous Object-Oriented Analysis , 1994, ISOOMS.

[20]  Ciaran Mchale,et al.  Synchronisation in Concurrent, Object-oriented Languages: Expressive Power, Genericity and Inheritan , 1994 .

[21]  Radha Jagadeesan,et al.  Design and implementation of Triveni: a process-algebraic API for threads + events , 1998, Proceedings of the 1998 International Conference on Computer Languages (Cat. No.98CB36225).

[22]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[23]  Nicolas Halbwachs,et al.  Synchronous Programming of Reactive Systems , 1992, CAV.

[24]  Gérard Berry,et al.  The Esterel Synchronous Programming Language: Design, Semantics, Implementation , 1992, Sci. Comput. Program..

[25]  Oscar Nierstrasz Active objects in hybrid , 1987, OOPSLA 1987.

[26]  J.-L. Pazat,et al.  Objets, parallélisme et répartition , 1999 .

[27]  Michel Augeraud Dynamic objects , 1991, COCS '91.

[28]  Mario Tokoro,et al.  The society of objects , 1993, OOPSLA Addendum.

[29]  Nawaf Bitar,et al.  The design of the mach operating system , 1993 .

[30]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[31]  Oscar Nierstrasz,et al.  Active objects in hybrid , 1987, OOPSLA '87.

[32]  Vineet Singh,et al.  Inheritance and synchronization with enabled-sets , 1989, OOPSLA '89.

[33]  Ken Arnold,et al.  The Java Programming Language , 1996 .

[34]  Henri E. Bal Programming distributed systems , 1990 .

[35]  Gunter Saake,et al.  Aggregation in a Behaviour Oriented Object Model , 1992, ECOOP.

[36]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[37]  Henry Lieberman,et al.  Concurrent object-oriented programming in Act 1 , 1987 .

[38]  D. Decouchant,et al.  A synchronization mechanism for typed objects in a distributed system , 1988, OOPSLA/ECOOP '88.

[39]  Satoshi Matsuoka,et al.  Highly efficient and encapsulated re-use of synchronization code in concurrent object-oriented languages , 1993, OOPSLA '93.

[40]  Bjarne Stroustrup,et al.  The C++ programming language (2nd ed.) , 1991 .

[41]  Jean-Pierre Verjus,et al.  Toward Autonomous Descriptions of Synchronization Modules , 1977, IFIP Congress.

[42]  S. Ramesh,et al.  Communicating reactive processes , 1993, POPL '93.

[43]  Radha Jagadeesan,et al.  Objects and Concurrency in Triveni: A Telecommunication Case Study in Java , 1998, COOTS.

[44]  Jean-Pierre Briot,et al.  Actalk: A Testbed for Classifying and Designing Actor Languages in the Smalltalk-80 Environment , 1989, ECOOP.

[45]  Amar Bouali,et al.  XEVE, an ESTEREL Verification Environment , 1998, CAV.

[46]  Roy H. Campbell,et al.  The specification of process synchronization by path expressions , 1974, Symposium on Operating Systems.

[47]  Bertrand Meyer,et al.  Systematic concurrent object-oriented programming , 1993, CACM.

[48]  Asynchronous Reactive Objects : An Attempt to Control the Object Behavior , .

[49]  Gul Agha,et al.  Concurrent programming using actors , 1987 .

[50]  Stefano Crespi-Reghizzi,et al.  Definition of Reusable Concurrent Software Components , 1991, ECOOP.