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).
Chapter PDF
References
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.
J. K. Bennet. The Design and Implementation of Distributed Smalltalk. In OOP-SLA '87 Proceedings, pages 318–330, Orlando, Florida, October 1987.
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.
A.D. Birrell and B.J.Nelson. Implementing remote procedure calls. Technical Report CSL-83-7, Xerox, October 1983.
Grady Booch. Object-Oriented Design With Applications. Benjamin/Cummings Publishing Company, Inc., 1991.
Mark Day. Object Clusters May Be Better Than Pages. In 4rd Workshop on Workstations Operating Systems, pages 119–122, Napa, California, October 1993.
Margaret Ellis and Bjarne Stroustrup. The Annotated C++ Reference Manual. Addison-Wesley, Reading, Massachusetts, 1990.
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.
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.
Walter L. Hürsch and Cristina V. Lopes. Separation of Concerns. Technical Report NU-CCS-95-03, Northeastern University, Boston, USA, February 1995.
Ivar Jacobson, Mangus Christerson, Patrik Jonsson, and Gunnar Overgaard. Object-Oriented Software Engineering — A Use Case Driven Approach. ACM Press, Addison-Wesley, 1992.
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.
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.
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
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
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.
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.
Barbara Liskov. Distributed Programming in Argus. Communications of the ACM, pages 300–312, March 1988.
Klaus-Peter Löhr. Concurrency annotations for reusable software. Communications of the ACM, 36(9):90–101, September 1993.
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.
Cristina Videira Lopes. IK RPC V3.0: User's and Reference Manuals. INESC, Lisboa, Portugal, March 1992.
Pattie Maes. Concepts and Experiments in Cmputational Reflexion. In Proceedings of ACM OOPSLA, pages 147–155, 1987.
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.
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.
OMG. The Common Object Request Broker: architecture and specification, December 1991.
Jens Palsberg, Cun Xiao, and Karl Lieberherr. Efficient implementation of adaptive software. ACM Transactions on Programming Languages and Systems, 1995.
James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy, and William Lorensen. Object-Oriented Modeling and Design. Prentice Hall, 1991.
Ignacio Silva-Lepe, Walter Hürsch, and Greg Sullivan. A Demeter/C++ Report. C++ Report, SIGS Publication, February 1994.
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.
Cun Xiao. Adaptive Software: Automatic Navigation Through Partially Specified Data Structures. PhD thesis, Northeastern University, 1994.
Private conversation with members of the Composition Filters research team.
Author information
Authors and Affiliations
Editor information
Rights 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