A Dynamic Binding Strategy for Multiple Inheritance and Asynchronously Communicating Objects

This paper considers an integration of asynchronous communication, virtual binding, and multiple inheritance. Object orientation is the leading paradigm for concurrent and distributed systems, but the tightly synchronized RPC communication model seems unsatisfactory in the distributed setting. Asynchronous messages are better suited, but lack the structure and discipline of traditional object-oriented methods. The integration of messages in the object-oriented paradigm is unsettled, especially with respect to inheritance and redefinition. Asynchronous method calls have been proposed in the Creol language, reducing the cost of waiting for replies in the distributed environment while avoiding low-level synchronization constructs such as explicit signaling. A lack of reply to a method call need not lead to deadlock in the calling object. Creol has an operational semantics defined in rewriting logic. This paper considers a formal operational model of multiple inheritance, virtual binding, and asynchronous communication between concurrent objects, extending the semantics of Creol.

[1]  Alan Bundy,et al.  Constructing Induction Rules for Deductive Synthesis Proofs , 2006, CLASE.

[2]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[3]  Luca Cardelli,et al.  ECOOP 2003 – Object-Oriented Programming , 2003, Lecture Notes in Computer Science.

[4]  Elie Najm,et al.  A Formal Semantics for the ODP Computational Model , 1995, Comput. Networks ISDN Syst..

[5]  José Meseguer,et al.  Conditioned Rewriting Logic as a United Model of Concurrency , 1992, Theor. Comput. Sci..

[6]  William R. Cook,et al.  Mixin-based inheritance , 1990, OOPSLA/ECOOP '90.

[7]  Mitchell Wand,et al.  Modeling Subobject-based Inheritance , 1996, ECOOP.

[8]  Tom Lyche,et al.  From object-orientation to formal methods : essays in memory of Ole-Johan Dahl , 2004 .

[9]  Gul Agha,et al.  Research directions in concurrent object-oriented programming , 1993 .

[10]  J. L. Knudsen Name Collision in Multiple Classification Hierarchies , 1988 .

[11]  Stein Krogdahl Multiple inheritance in Simula-like languages , 1985, BIT Comput. Sci. Sect..

[12]  Vladimiro Sassone,et al.  The inheritance anomaly: ten years after , 2004, SAC '04.

[13]  Andrew D. Gordon,et al.  A Concurrent Object Calculus: Reduction and Typing , 1998, HLCL.

[14]  Cosimo Laneve,et al.  Inheritance in the join calculus , 2003, J. Log. Algebraic Methods Program..

[15]  Kathleen Fisher,et al.  A Calculus for Concurrent Objects , 1996, CONCUR.

[16]  Linda G. DeMichiel,et al.  The Common Lisp Object System: An Overview , 1987, ECOOP.

[17]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[18]  Ole-Johan Dahl,et al.  Class and Subclass Declarations (Reprint) , 2002, Software Pioneers.

[19]  Oscar Nierstrasz,et al.  Traits: Composable Units of Behaviour , 2002, ECOOP.

[20]  Einar Broch Johnsen,et al.  An Asynchronous Communication Model for Distributed Concurrent Objects , 2004, SEFM.

[21]  Einar Broch Johnsen,et al.  A Compositional Formalism for Object Viewpoints , 2002, FMOODS.

[22]  J. Bézivin,et al.  ECOOP’ 87 European Conference on Object-Oriented Programming , 1987, Lecture Notes in Computer Science.

[23]  Bjarne Stroustrup,et al.  Multiple Inheritance for C++ , 1989, Comput. Syst..

[24]  Satoshi Matsuoka,et al.  Analysis of inheritance anomaly in object-oriented concurrent programming languages , 1993 .

[25]  Bruce D. Shriver,et al.  Research Directions in Object-Oriented Programming , 1987 .

[26]  Denis Caromel,et al.  A natural semantics for Eiffel dynamic binding , 1996, TOPL.

[27]  Pierre Cointe ECOOP ’96 — Object-Oriented Programming , 1996, Lecture Notes in Computer Science.

[28]  William R. Cook,et al.  Inheritance is not subtyping , 1989, POPL '90.

[29]  Narciso Martí-Oliet,et al.  Maude: specification and programming in rewriting logic , 2002, Theor. Comput. Sci..

[30]  Julian Bradfield CONCUR '96: Concurrency Theory , 1996 .

[31]  Cosimo Laneve,et al.  Inheritance in concurrent objects , 2001, FME 2001.

[32]  Larry Wos,et al.  What Is Automated Reasoning? , 1987, J. Autom. Reason..

[33]  Jens Palsberg,et al.  A Denotational Semantics of Inheritance and Its Correctness , 1994, Inf. Comput..

[34]  Stein Gjessing,et al.  ECOOP ’88 European Conference on Object-Oriented Programming , 1988, Lecture Notes in Computer Science.

[35]  Robert Biddle,et al.  Simulating multiple inheritance in Java , 2000, J. Syst. Softw..

[36]  Neelam Soundarajan,et al.  Inheritance: from code reuse to reasoning reuse , 1998, Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203).

[37]  Luca Cardelli,et al.  A Semantics of Multiple Inheritance , 1984, Information and Computation.

[38]  Einar Broch Johnsen,et al.  A Dynamic Class Construct for Asynchronous Concurrent Objects , 2005, FMOODS.

[39]  Alan Snyder,et al.  Inheritance and the Development of Encapsulated Software Systems , 1987, Research Directions in Object-Oriented Programming.

[40]  Martín Abadi,et al.  A Theory of Objects , 1996, Monographs in Computer Science.

[41]  Manfred Broy,et al.  Software Pioneers: Contributions to Software Engineering , 2002 .

[42]  Jeannette M. Wing,et al.  A behavioral notion of subtyping , 1994, TOPL.

[43]  José Meseguer,et al.  Rewriting Logic Semantics: From Language Specifications to Formal Analysis Tools , 2004, IJCAR.

[44]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[45]  Einar Broch Johnsen,et al.  Inheritance in the Presence of Asynchronous Method Calls , 2005, Proceedings of the 38th Annual Hawaii International Conference on System Sciences.

[46]  Heike Wehrheim,et al.  Behavioural Subtyping Relations for Object-Oriented Formalisms , 2000, AMAST.

[47]  Kim B. Bruce,et al.  PolyTOIL: A Type-Safe Polymorphic Object-Oriented Language , 1995, ECOOP.

[48]  Tom Lyche,et al.  From Object-Orientation to Formal Methods , 2004, Lecture Notes in Computer Science.

[49]  Pierre America,et al.  A parallel object-oriented language with inheritance and subtyping , 1990, OOPSLA/ECOOP '90.

[50]  Einar Broch Johnsen,et al.  Object-Oriented Specification and Open Distributed Systems , 2004, Essays in Memory of Ole-Johan Dahl.

[51]  Craig Chambers,et al.  Parents are shared parts of objects: Inheritance and encapsulation in SELF , 1991, LISP Symb. Comput..

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