Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

BDL: A Specialized Language for Per-Object Reactive Control

Published: 01 May 1999 Publication History
  • Get Citation Alerts
  • 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.

    References

    [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, pp. 56–80, 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. univ-lr.fr/L3I/equipe/fbertran/pub/dksme94.ps.gz
    [5]
    M. Papathomas, “Language Design Rationale and Semantic Framework for Concurrent Object-Oriented Programming,” PhD thesis, Université de Genève, Jan. 1992. ftp://cui. unige.ch/OO-articles/papathomasThesis.ps.Z.
    [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. Addison-Wesley, 1988.
    [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, pp. 90–102, 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. ftp://ftp.cs.stir.ac. uk/pub/tr/cs/1994/TR132.ps.Z.
    [15]
    T. Hartmann R. Jungclaus and G. Saake, “Aggregation in a Behavior Oriented Object Model,” Proc. ECOOP'92, pp. 57–77, O.L. Madsen, ed., Lecture Notes in Computer Science 615, Springer-Verlag, 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. ftp://ftp.dsg.cs.tcd.ie/pub/doc/dsg-86.ps.gz
    [17]
    N. Halbwachs, Synchronous Programming of Reactive Systems. Kluwer Academic, 1993.
    [18]
    G. Berry and G. Gonthier, “The Esterel Synchronous Programming Language: Design,Semantics, Implementation,” Science of Computer Programming, vol. 19, no. 2, pp. 87–152, 1992. ftp://ftp-sop.inria.fr/meije/esterel/papers/BerryGonthierSCP.ps.gz.
    [19]
    D. Harel, “Statecharts: A Visual Formalism for Complex Systems,” Science of Computer Programming, vol. 8, pp. 231–274, June 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. ftp://ftp-sop.inria.fr/meije/esterel/papers/popl.ps.gz.
    [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. Addison-Wesley, 1991.
    [26]
    L. Lamport, “What Good is Temporal Logic?” Information Processing 83, Elsevier Science, ed., IFIP, pp. 657–668, North Holland, 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. http://www. cs. utexas. edu/users/cpg/TempEst/doc/95-CAV.ps.Z.
    [28]
    A. Bouali, “Xeve: An Esterel Verification Environment,” Technical Report 0214, INRIA, Dec. 1997. ftp://ftp-sop. inria. fr/meije/verif/RT-214.ps.gz.
    [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, North Holland, 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. http://www-l3i.univ-lr.fr/L3I/equipe/fbertran/pub/oopsla94.ps.gz.
    [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. http://www.etl.go.jp/etl/bunsan/roudier/postscripts/OBPDC'95.ps
    [42]
    D. Coleman F. Hayes and S. Bear, “Introducing Objectcharts or How to Use Statecharts in Object-Oriented Design,” IEEE Trans. Software Eng., vol. 18, no. 1, pp. 9–18, 1992.
    [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. ftp://zenon.inria.fr/pub/rapports/RR-2664.ps.
    [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/techreport959-94.ps.

    Cited By

    View all

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image IEEE Transactions on Software Engineering
    IEEE Transactions on Software Engineering  Volume 25, Issue 3
    May 1999
    144 pages
    ISSN:0098-5589
    Issue’s Table of Contents

    Publisher

    IEEE Press

    Publication History

    Published: 01 May 1999

    Author Tags

    1. Concurrent object-oriented programming
    2. control of behavior
    3. reactive languages.
    4. verification

    Qualifiers

    • Research-article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 11 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all

    View Options

    View options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media