Skip to main content

Adaptive parameter passing

  • Parallelism and Distribution
  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1049))

Abstract

Control over parameter passing is a key issue in distributed object-oriented applications. The two simplest solutions — passing objects by global reference and passing objects by deep copy — both have significant drawbacks. Instead, an intermediate amount of copying is often best. However, achieving the right amount of copying is difficult for two reasons: (i) compilers and operating systems cannot automatically make the best decision on how much to copy; (ii) there hasn't been a good mechanism for the programmer to express the intermediate amount of copying that should be done.

This paper presents a new mechanism that allows programmers to express in a natural and succinct way how much of the object graph should be copied to the remote context. The specifications are done using a very simple declarative meta-language — GOOP — that has graphs of classes as its domain. GOOP allows the specification of: (i) whether the parameter object should be passed by copy or by reference; and (ii) if passed by copy, what parts of the parameter object's graph should be copied.

Supported by the Portuguese Foundation for Research, Science and Technology (JNICT).

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. M. Aksit, K. Wakita, J. Bosch, L. Bergmans, and A. Yonezawa. Abtracting Object Interactions Using Compositions Filters. In Guerraoui, Nierstrasz, and Riveill, editors, ECOOP'93 Workshop on Object-Based Distributed Programming, pages 152–184. Springer-Verlag, 1994.

    Google Scholar 

  2. J. K. Bennet. The Design and Implementation of Distributed Smalltalk. In OOP-SLA '87 Proceedings, pages 318–330, Orlando, Florida, October 1987.

    Google Scholar 

  3. Lodewijk Bergmans, Mehmet Aksit, Ken Wakita, and Akinori Yonezawa. An object-oriented model for extensible concurrent systems: the composition-filters approach. Memoranda Informatica, 92(87), December 1992.

    Google Scholar 

  4. A.D. Birrell and B.J.Nelson. Implementing remote procedure calls. Technical Report CSL-83-7, Xerox, October 1983.

    Google Scholar 

  5. Grady Booch. Object-Oriented Design With Applications. Benjamin/Cummings Publishing Company, Inc., 1991.

    Google Scholar 

  6. Mark Day. Object Clusters May Be Better Than Pages. In 4rd Workshop on Workstations Operating Systems, pages 119–122, Napa, California, October 1993.

    Google Scholar 

  7. Margaret Ellis and Bjarne Stroustrup. The Annotated C++ Reference Manual. Addison-Wesley, Reading, Massachusetts, 1990.

    Google Scholar 

  8. Svend Frφlund and Gul Agha. A language framework for multi-object coordination. In Oscar Nierstrasz, editor, Lecture Notes in Computer Science, pages 346–360. ECOOP'93, Springer-Verlag, July 1993.

    Google Scholar 

  9. Sabine Habert, Laurence Mosseri, and Vadim Abrossimov. COOL: Kernel Support for Object-Oriented Environments. In OOPSLA ECOOP '90, Proceedings, pages 269–277, Ottawa, Canada, October 1990.

    Google Scholar 

  10. Walter L. Hürsch and Cristina V. Lopes. Separation of Concerns. Technical Report NU-CCS-95-03, Northeastern University, Boston, USA, February 1995.

    Google Scholar 

  11. Ivar Jacobson, Mangus Christerson, Patrik Jonsson, and Gunnar Overgaard. Object-Oriented Software Engineering — A Use Case Driven Approach. ACM Press, Addison-Wesley, 1992.

    Google Scholar 

  12. Eric Jul, Henry Levy, Norman Hutchinson, and Andrew Black. Fine-Grained Mobility in the Emerald System. ACM Transactions on Computer Systems, 6(1):109–133, february 1988.

    Google Scholar 

  13. Gregor Kiczales. Towards a new Model of Abstraction in Software Engineering. In Proceedings of the Int'l Workshop on New Models for Software Archtecture Reflection and Meta-level Architecture, November 1992.

    Google Scholar 

  14. Gregor Kiczales et al. Foil for the Workshop on Open Implementation. 1994. http://www.parc.xerox.com/PARC/spl/eca/oi/workshop-94/foil/main.html

    Google Scholar 

  15. Gregor Kiczales. Why are black boxes so hard to reuse? Invited talk, OOPSLA'94. http://www.parc.xerox.com/PARC/spl/eca/oi/gregor-invite.html

    Google Scholar 

  16. Karl J. Lieberherr, Ignacio Silva-Lepe, and Cun Xiao. Adaptive object-oriented programming using graph-based customization. Communications of the ACM, 37(5):94–101. May 1994.

    Google Scholar 

  17. Karl J. Lieberherr and Cun Xiao. Formal Foundations for Object-Oriented Data Modeling. IEEE Transactions on Knowledge and Data Engineering, 5(3):462–478, June 1993.

    Google Scholar 

  18. Barbara Liskov. Distributed Programming in Argus. Communications of the ACM, pages 300–312, March 1988.

    Google Scholar 

  19. Klaus-Peter Löhr. Concurrency annotations for reusable software. Communications of the ACM, 36(9):90–101, September 1993.

    Google Scholar 

  20. Cristina V. Lopes and Karl Lieberherr. Abstracting process-to-function relations in concurrent object-oriented applications. In Mario Tokoro, editor, Lecture Notes in Computer Science, pages 81–99, Bologna, Italy, July 1994. ECOOP'94, Springer-Verlag.

    Google Scholar 

  21. Cristina Videira Lopes. IK RPC V3.0: User's and Reference Manuals. INESC, Lisboa, Portugal, March 1992.

    Google Scholar 

  22. Pattie Maes. Concepts and Experiments in Cmputational Reflexion. In Proceedings of ACM OOPSLA, pages 147–155, 1987.

    Google Scholar 

  23. H. Masuhara, S. Matsuoka, T. Watanabe, and A. Yonezawa. Object-oriented concurrent reflective languages can be implemented efficiently. In Andreas Paepcke, editor, OOPSLA, pages 127–144, Vancouver, Canada, October 1992. ACM Press.

    Google Scholar 

  24. Hideaki Okamura and Yutaka Ishikawa. Object Location Control Using Meta-level Programming. In Mario Tokoro, editor, Lecture Notes in Computer Science, pages 299–319, Bologna, Italy, July 1994. ECOOP'94, Springer-Verlag.

    Google Scholar 

  25. OMG. The Common Object Request Broker: architecture and specification, December 1991.

    Google Scholar 

  26. Jens Palsberg, Cun Xiao, and Karl Lieberherr. Efficient implementation of adaptive software. ACM Transactions on Programming Languages and Systems, 1995.

    Google Scholar 

  27. James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy, and William Lorensen. Object-Oriented Modeling and Design. Prentice Hall, 1991.

    Google Scholar 

  28. Ignacio Silva-Lepe, Walter Hürsch, and Greg Sullivan. A Demeter/C++ Report. C++ Report, SIGS Publication, February 1994.

    Google Scholar 

  29. Manolis Tsangaris and Jeffrey Naughton. On the performance of object clustering techniques. In Michael Stonebraker, editor, ACM SIGMOD Int'l Conference on Management of Data, pages 144–153. ACM Press, 1992.

    Google Scholar 

  30. Cun Xiao. Adaptive Software: Automatic Navigation Through Partially Specified Data Structures. PhD thesis, Northeastern University, 1994.

    Google Scholar 

  31. Private conversation with members of the Composition Filters research team.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Kokichi Futatsugi Satoshi Matsuoka

Rights and permissions

Reprints and permissions

Copyright information

© 1996 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Lopes, C.V. (1996). Adaptive parameter passing. In: Futatsugi, K., Matsuoka, S. (eds) Object Technologies for Advanced Software. ISOTAS 1996. Lecture Notes in Computer Science, vol 1049. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-60954-7_47

Download citation

  • DOI: https://doi.org/10.1007/3-540-60954-7_47

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-60954-4

  • Online ISBN: 978-3-540-49747-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics