A Dynamic Binding Strategy for Multiple Inheritance and Asynchronously Communicating Objects

  • Einar Broch Johnsen
  • Olaf Owe
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3657)

Abstract

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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Abadi, M., Cardelli, L.: A Theory of Objects. Springer, New York (1996)MATHGoogle Scholar
  2. 2.
    America, P., van der Linden, F.: A parallel object-oriented language with inheritance and subtyping. In: Meyrowitz, N. (ed.) Proc. of the Conf. on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), October 1990, pp. 161–168. ACM Press, New York (1990)Google Scholar
  3. 3.
    Attali, I., Caromel, D., Ehmety, S.O.: A natural semantics for Eiffel dynamic binding. ACM Transactions on Programming Languages and Systems 18(6), 711–729 (1996)CrossRefGoogle Scholar
  4. 4.
    Bracha, G., Cook, W.: Mixin-based inheritance. In: Meyrowitz, N. (ed.) Proc. of the Conf. on Object-Oriented Programming: Systems, Languages, and Applications / Eur. Conf. on Object-Oriented Programming, pp. 303–311. ACM Press, New York (1990)CrossRefGoogle Scholar
  5. 5.
    Bruce, K.B., Schuett, A., van Gent, R., Fiech, A.: PolyTOIL: A type-safe polymorphic object-oriented language. ACM Transactions on Programming Languages and Systems 25(2), 225–290 (2003)CrossRefGoogle Scholar
  6. 6.
    Cardelli, L.: A semantics of multiple inheritance. Information and Computation 76(2-3), 138–164 (1988)MATHCrossRefMathSciNetGoogle Scholar
  7. 7.
    Chambers, C., Ungar, D., Chang, B.-W., Hölzle, U.: Parents are shared parts of objects: Inheritance and encapsulation in SELF. Lisp and Symb. Computation 4(3), 207–222 (1991)CrossRefGoogle Scholar
  8. 8.
    Clavel, M., Durán, F., Eker, S., Lincoln, P., Martí-Oliet, N., Meseguer, J., Quesada, J.F.: Maude: Specification and programming in rewriting logic. Theoretical Computer Science 285, 187–243 (2002)MATHCrossRefMathSciNetGoogle Scholar
  9. 9.
    Cook, W., Palsberg, J.: A denotational semantics of inheritance and its correctness. Information and Computation 114(2), 329–350 (1994)CrossRefMathSciNetGoogle Scholar
  10. 10.
    Cook, W.R., Hill, W.L., Canning, P.S.: Inheritance is not subtyping. In: 17th Symp. on Principles of Programming Languages (POPL 1990), January 1990, pp. 125–135. ACM Press, New York (1990)Google Scholar
  11. 11.
    Dahl, O.-J., Nygaard, K.: Class and subclass declarations. In: Buxton, J. (ed.) Simulation Programming Languages, pp. 158–174. North-Holland, Amsterdam (1968); Reprinted in Broy, M., Denert, E. (eds.): Software Pioneers — Contributions to Software Engineering. Springer, Heidelberg (2002)Google Scholar
  12. 12.
    Demichiel, L.G., Gabriel, R.P.: The common lisp object system: An overview. In: Bézivin, J., Hullot, J.-M., Lieberman, H., Cointe, P. (eds.) ECOOP 1987. LNCS, vol. 276, pp. 151–170. Springer, Heidelberg (1987)CrossRefGoogle Scholar
  13. 13.
    Di Blasio, P., Fischer, K.: A calculus for concurrent objects. In: Sassone, V., Montanari, U. (eds.) CONCUR 1996. LNCS, vol. 1119, pp. 655–670. Springer, Heidelberg (1996)Google Scholar
  14. 14.
    Fischer, C., Wehrheim, H.: Behavioural subtyping relations for object-oriented formalisms. In: Rus, T. (ed.) AMAST 2000. LNCS, vol. 1816, pp. 469–483. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  15. 15.
    Fournet, C., Laneve, C., Maranget, L., Rémy, D.: Inheritance in the join calculus. Journal of Logic and Algebraic Programming 57(1-2), 23–69 (2003)MATHCrossRefMathSciNetGoogle Scholar
  16. 16.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)Google Scholar
  17. 17.
    Goguen, J.A., Winkler, T., Meseguer, J., Futatsugi, K., Jouannaud, J.-P.: Introducing OBJ. In: Goguen, J.A., Malcolm, G. (eds.) Software Engineering with OBJ: Algebraic Specification in Action, pp. 3–167. Kluwer, Dordrecht (2000)Google Scholar
  18. 18.
    Gordon, A.D., Hankin, P.D.: A concurrent object calculus: Reduction and typing. In: Nestmann, U., Pierce, B.C. (eds.) High-Level Concurrent Languages (HLCL 1998). Electronic Notes in Theoretical Computer Science, vol. 16(3). Elsevier, Amsterdam (1998)Google Scholar
  19. 19.
    Johnsen, E.B., Owe, O.: A compositional formalism for object viewpoints. In: Jacobs, B., Rensink, A. (eds.) Proc. 5th Intl. Conf. on Formal Methods for Open Object-Based Distributed Systems (FMOODS 2002), March 2002, pp. 45–60. Kluwer, Dordrecht (2002)Google Scholar
  20. 20.
    Johnsen, E.B., Owe, O.: An asynchronous communication model for distributed concurrent objects. In: Proc. 2nd Intl. Conf. on Software Engineering and Formal Methods (SEFM 2004), September 2004, pp. 188–197. IEEE Press, Los Alamitos (2004)CrossRefGoogle Scholar
  21. 21.
    Johnsen, E.B., Owe, O.: Object-oriented specification and open distributed systems. In: Owe, O., Krogdahl, S., Lyche, T. (eds.) From Object-Orientation to Formal Methods. LNCS, vol. 2635, pp. 137–164. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  22. 22.
    Johnsen, E.B., Owe, O.: Inheritance in the presence of asynchronous method calls. In: Proc. 38th Hawaii Intl. Conf. on System Sciences (HICSS 2005), January 2005. IEEE Press, Los Alamitos (2005)Google Scholar
  23. 23.
    Johnsen, E.B., Owe, O., Simplot-Ryl, I.: A dynamic class construct for asynchronous concurrent objects. In: Steffen, M., Zavattaro, G. (eds.) FMOODS 2005. LNCS, vol. 3535, pp. 15–30. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  24. 24.
    Knudsen, J.L.: Name collision in multiple classification hierarchies. In: Gjessing, S., Nygaard, K. (eds.) ECOOP 1988. LNCS, vol. 322, pp. 93–109. Springer, Heidelberg (1988)CrossRefGoogle Scholar
  25. 25.
    Krogdahl, S.: Multiple inheritance in Simula-like languages. BIT 25(2), 318–326 (1985)MATHCrossRefGoogle Scholar
  26. 26.
    Laneve, C.: Inheritance in concurrent objects. In: Bowman, H., Derrick, J. (eds.) Formal methods for distributed processing – a survey of object-oriented approaches, pp. 326–353. Cambridge University Press, Cambridge (2001)Google Scholar
  27. 27.
    Liskov, B.H., Wing, J.M.: A behavioral notion of subtyping. ACM Transactions on Programming Languages and Systems 16(6), 1811–1841 (1994)CrossRefGoogle Scholar
  28. 28.
    Matsuoka, S., Yonezawa, A.: Analysis of inheritance anomaly in object-oriented concurrent programming languages. In: Agha, G., Wegner, P., Yonezawa, A. (eds.) Research Directions in Concurrent Object-Oriented Programming, pp. 107–150. MIT Press, Cambridge (1993)Google Scholar
  29. 29.
    Meseguer, J.: Conditional rewriting logic as a unified model of concurrency. Theoretical Computer Science 96, 73–155 (1992)MATHCrossRefMathSciNetGoogle Scholar
  30. 30.
    Meseguer, J., Roşu, G.: Rewriting logic semantics: From language specifications to formal analysis tools. In: Basin, D., Rusinowitch, M. (eds.) IJCAR 2004. LNCS (LNAI), vol. 3097, pp. 1–44. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  31. 31.
    Meyer, B.: Object-Oriented Software Construction. Prentice Hall, New Jersy (1997)MATHGoogle Scholar
  32. 32.
    Milicia, G., Sassone, V.: The inheritance anomaly: ten years after. In: Proc. of the Symp. on Applied Computing, pp. 1267–1274. ACM Press, New York (2004)Google Scholar
  33. 33.
    Najm, E., Stefani, J.-B.: A formal semantics for the ODP computational model. Computer Networks and ISDN Systems 27, 1305–1329 (1995)CrossRefGoogle Scholar
  34. 34.
    Rossie Jr., J.G., Friedman, D.P., Wand, M.: Modeling subobject-based inheritance. In: Cointe, P. (ed.) ECOOP 1996. LNCS, vol. 1098, pp. 248–274. Springer, Heidelberg (1996)Google Scholar
  35. 35.
    Schärli, N., Ducasse, S., Nierstrasz, O., Black, A.P.: Traits: Composable units of behaviour. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, pp. 248–274. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  36. 36.
    Snyder, A.: Inheritance and the development of encapsulated software systems. In: Shriver, B., Wegner, P. (eds.) Research Directions in Object-Oriented Programming, pp. 165–188. MIT Press, Cambridge (1987)Google Scholar
  37. 37.
    Soundarajan, N., Fridella, S.: Inheritance: From code reuse to reasoning reuse. In: Devanbu, P., Poulin, J. (eds.) Proc. Fifth Intl. Conf. on Software Reuse (ICSR5), pp. 206–215. IEEE Press, Los Alamitos (1998)CrossRefGoogle Scholar
  38. 38.
    Stroustrup, B.: Multiple inheritance for C++. Computing Systems 2(4), 367–395 (1989)Google Scholar
  39. 39.
    Tempero, E., Biddle, R.: Simulating multiple inheritance in Java. The Journal of Systems and Software 55(1), 87–100 (2000)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Einar Broch Johnsen
    • 1
  • Olaf Owe
    • 1
  1. 1.Department of InformaticsUniversity of OsloNorway

Personalised recommendations