Abstract
Object-oriented programming promises to increase programmer productivity through better reuse of existing code. However, reuse is not yet pervasive in today’s object-oriented programs. Why is this so? We argue that one reason is that current programming languages and environments assume that components are perfectly coordinated. Yet in a world where programs are mostly composed out of reusable components, these components are not likely to be completely integrated because the sheer number of components would make global coordination impractical. Given that seemingly minor inconsistencies between individually designed components would exist, we examine how they can lead to integration problems with current programming language mechanisms. We discuss several reuse mechanisms that can adapt a component in place without requiring access to the component’s source code and without needing to re-typecheck it.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Rakesh Agrawal, Linda G. DeMichiel, and Bruce G. Lindsay. Static Type-Checking of Multi-Methods. In OOPSLA’ 91 Conference Proceedings, pp. 113–128, Phoenix, AZ, October 1991. Published as SIGPLAN Notices 26(11), November 1991.
Pierre America and Frank van der Linden. A Parallel Object-Oriented Language with Inheritance and Subtyping. In ECOOP/OOPSLA’ 90 Conference Proceedings, pp. 161–168, Ottawa, Canada, October 1990. Published as SIGPLAN Notices 25(10), October 1990.
Apple Computer, Eastern Research and Technology. Dylan, an object-oriented dynamic language. Apple Computer, Cupertino, CA, April 1992.
Gilad Bracha and William Cook. Mixin-Based Inheritance. In ECOOP/OOPSLA’ 90 Conference Proceedings, pp. 303–311, Ottawa, Canada, October 1990. Published as SIGPLAN Notices 25(10), October 1990.
Lucy Berlin. When Objects Collide: Experiences with Reusing Multiple Class Hierarchies. In ECOOP/OOPSLA’ 90 Conference Proceedings, pp. 181–193, Ottawa, Canada, October 1990. Published as SIGPLAN Notices 25(10), October 1990.
Luca Cardelli and Peter Wegner. On Understanding Types, Data Abstraction, and Polymorphism. Computing Surveys 17(4), pp, 471–522, December 1985.
Craig Chambers. Object-Oriented Multimethods in Cecil. In ECOOP’ 92 Proceedings, pp. 33–65, Utrecht, The Netherlands, June 1992. Published as Springer Verlag LNCS 615, Berlin, Germany 1992.
Craig Chambers. The Cecil Language—Specification and Rationale. Technical Report 93-03-05, Computer Science Department, University of Washington, Seattle 1993.
Craig Chambers. Predicate Classes. In ECOOP’ 93 Conference Proceedings, Kaiserslautern, Germany, July 1993.
Peter Canning, William Cook, Walter Hill, and Walter Olthoff. Interfaces in strongly-typed object-oriented programming. In OOPSLA’ 89 Conference Proceedings, pp. 457–468, New Orleans, LA, October 1989. Published as SIGPLAN Notices 24(10), October 1989.
Brad Cox. Object-Oriented Programming: An Evolutionary Approach. Addison-Wesley, Reading, MA 1986.
Linda G. DeMichiel and Richard P. Gabriel. The Common Lisp Object System: An Overview. In ECOOP’ 87 Conference Proceedings, pp. 223–233, Paris, France, June 1987. Published as Springer Verlag LNCS 276, Berlin, Germany 1987.
L. Peter Deutsch. Reusability in the Smalltalk-80 Programming System. Proceedings of the Workshop on Reusability in Programming, p. 72–76. Newport, RI, September 1983.
Margaret A. Ellis and Bjarne Stroustrup. The Annotated C++ Reference Manual. Addison Wesley, Reading, Ma 1990.
Chris Horn. Conformance, Genericity, Inheritance and Enhancement. In ECOOP’ 87 Conference Proceedings, pp. 223–233, Paris, France, June 1987. Published as Springer Verlag LNCS 276, Berlin, Germany 1987.
Urs Hölzle and David Ungar. The Case for Pure Object-Oriented Languages. In Proceedings of the OOPSLA’ 92 Workshop on Object-Oriented Languages: The Next Generation. Vancouver, Canada, October 1992.
Paul Johnson and Ceri Rees. Reusability through Fine-grain Inheritance. Soft-ware—Practice and Experience 22(12), pp. 1049–1068, December 1992.
B. B. Kristensen, O. L. Madsen, B. Møller-Pedersen and K. Nygaard. The BETA Programming Language. In B. Shriver and P. Wegner (eds.), Research Directions in Object-Oriented Programming, pp. 7–48. MIT Press, Cambridge, MA 1987.
Henry Lieberman. Position Statement in the Panel on Varieties of Inheritance. In Addendum to the OOPSLA’ 87 Proceedings, p. 35. Published as SIGPLAN Notices 23(5), May 1988.
Mark A. Linton, John Vlissides, and Paul Calder. Composing user interfaces with Interviews. IEEE Computer Magazine, February 1989.
Mark A. Linton. Encapsulating a C++ Library. Proceedings of the 1992 Usenix C++ Conference, pp. 57–66, Portland, OR, August 1992.
Boris Magnusson. Position statement during the ECOOP’ 91 Workshop on Types, Geneva, Switzerland, July 1991.
Ole Lehrmann-Madsen, Birger Møller-Pedersen, and Kristen Nygaard. The BETA Programming Language—A Scandinavian Approach to Object-Oriented Programming. OOPSLA’ 89 Tutorial Notes, New Orleans, LA, October 1989.
David A. Moon. Object-Oriented programming with Flavors. In OOPSLA’ 86 Conference Proceedings, pp. 1–8, Portland, OR, October 1986. Published as SIGPLAN Notices 21(11), November 1986.
Bertrand Meyer. Eiffel—The Language. Prentice Hall, New York 1991.
Harold Ossher and William Harrison. Combination of Inheritance Hierarchies. In OOPSLA’ 92 Conference Proceedings, pp. 25–43, Vancouver, Canada, October 1992. Published as SIGPLAN Notices 27(10), October 1992.
Panel: Experiences with reusability. In OOPSLA’ 88 Conference Proceedings, pp. 371–376, San Diego, CA, September 1988. Published as SIGPLAN Notices 23(11), November 1988.
Panel: Designing Reusable Designs: Experiences Designing Object-Oriented Frameworks. In Addendum to the OOPSLA/ECOOP’ 90 Conference Proceedings, pp. 19–24, Ottawa, Canada, October 1990.
W. F. Opdyke. Refactoring Object-Oriented Frameworks. Ph. D. Thesis, Department of Computer Science, University of Illinois, Urbana-Champaign 1992. Published as Technical Report UIUCDCS-R-92-53097.
Open Systems Foundation. OSF Architecture-Neutral Distribution Format Rationale. Open Systems Foundation, June 1991.
David Parnas. On the criteria to be used in decomposing systems into modules. Communications of the ACM, 15(12), December 1972.
Claus H. Pedersen. Extending ordinary inheritance schemes to include generalization. In OOPSLA’ 89 Conference Proceedings, pp. 407–417, New Orleans, LA, October 1989. Published as SIGPLAN Notices 24(10), October 1989.
Jens Palsberg and Michael Schwartzbach. Type substitution for object-oriented programming. In ECOOP/OOPSLA’ 90 Conference Proceedings, pp. 151–160, Ottawa, Canada, October 1990. Published as SIGPLAN Notices 25(10), October 1990.
Rajendra K. Raj and Henry K. Levy. A Compositional Model for Software Reuse. Computer Journal 32(4), pp. 312–322, 1989.
Rajendra K. Raj, Ewan Tempera, and Henry K. Levy. Emerald: A General-Purpose Programming Language. Software—Practice and Experience 21(1), pp. 91–118, January 1991.
David Sandberg. An Alternative to Subclassing. In OOPSLA’ 86 Conference Proceedings, pp. 424–428, Portland, OR, October 1986. Published as SIGPLAN Notices 21(11), November 1986.
Clemens Szypersky. Extensible Object-Orientation. In Proceedings of the OOPSLA’ 92 Workshop on Object-Oriented Languages: The Next Generation. Vancouver, Canada, October 18, 1992.
Josef Tempi. Compilation Speed of the SPARC Oberon Compiler. Personal communication, April 1990.
David Ungar and Randall B. Smith. SELF—The Power of Simplicity. In OOPSLA’ 87 Conference Proceedings, pp. 227–242, Orlando, FL, October 1987. Published as SIGPLAN Notices 22(12), December 1987.
André Weinand, Erich Gamma, and Robert Marty. ET++—An Object-Oriented Application Framework in C++. In OOPSLA’ 88 Conference Proceedings, pp. 168–182, San Diego, CA, October 1988. Published as SIGPLAN Notices 23(11), November 1988.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1993 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Hölzle, U. (1993). Integrating Independently-Developed Components in Object-Oriented Languages. In: Nierstrasz, O.M. (eds) ECOOP’ 93 — Object-Oriented Programming. ECOOP 1993. Lecture Notes in Computer Science, vol 707. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-47910-4_4
Download citation
DOI: https://doi.org/10.1007/3-540-47910-4_4
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-57120-9
Online ISBN: 978-3-540-47910-9
eBook Packages: Springer Book Archive