Abstract
Class-based languages have often been criticised for their rigidity. Prototype-based languages on the other hand are usually considered too flexible. We claim that this flexibility is inherently correlated to encapsulation problems. We therefore propose a new scale of ‘encapsulated’ inheritance mechanisms on objects that combine the object model of class-based languages with the inheritance mechanism of prototype-based languages. It is shown that they combine the advantages but shun the disadvantages of both paradigms. A denotational semantics of an exemplar encapsulated inheritance mechanism on objects is given and compared with the standard denotational semantics of class- and object-based inheritance. This comparison confirms our claims.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
G. Bracha. The Programming Language Jigsaw: Mixins, Modularity and Multiple Inheritance. PhD thesis, Department of Computer Science, University of Utah, March 1992.
G. Bracha and W. Cook. Mixin-based Inheritance. In Proceedings of the ACM Joint OOPSLA/ECOOP’90 Conference, ACM Sigplan Notices, 25(10), pp.303–311, ACM Press 1990.
W. Codenie, K. De Hondt, T. D’Hondt, P. Steyaert. Agora: Message Passing as a Foundation for Exploring OO Languages. ACM Sigplan Notices, 29(12), pp. 48–57, ACM Press 1994.
W. Cook and J. Palsberg. A Denotational Semantics of Inheritance and its Correctness. In Proceedings of the OOPSLA’89 Conference, ACM Sigplan Notices Vol. 24(10), pp433–443, ACM Press 1989.
C. Dony, J. Malenfant, P. Cointe. Prototype-Based Languages: From a New Taxonomy to Constructive Proposals and Their Validation. In Proceedings of the OOPSLA’92 Conference, ACM Sigplan Notices Vol. 27(10), pp201–217, ACM Press 1992.
A.V. Hense. Denotational Semantics of an Object-oriented Programming Language with Explicit Wrappers. Formal Aspects of Computing, pp. 3:1–000, 1992.
S.N. Kamin and U.S. Reddy. Two Semantic Models of Object-Oriented Languages. In Theoretical of Object-Oriented Programming, C.A. Gunter and G.C. Mitchell (Eds.), MIT Press, 1994.
G. Kiczales and J. Lamping. Issues in the Design and Documentation of Class Libraries. In Proceedings of the OOPSLA’92 Conference, ACM Sigplan Notices Vol. 27(10), pp435–451, ACM Press 1992.
J. Lamping. Typing the Specialisation Interface. In Proceedings of the OOPSLA’93 Conference, ACM Sigplan Notices Vol. 28(10), pp201–214, ACM Press 1993.
H. Lieberman. Using Prototypical Objects to Implement Shared Behaviour in an Object-Oriented System. In Proceedings of the OOPSLA’86 Conference, ACM Sigplan Notices, 21(11), pp. 214–223, ACM Press, 1986.
C. Lucas, P. Steyaert. Modular Inheritance of Objects Through Mixin-Methods. In Proceedings of JMLC, (Peter Schulthess, ed.), pp. 273–282, Universitätsverlag ulm GmbH, 1994.
T. Mens, K. Mens, P. Steyaert. OPUS, a Formal Approach to Object-Orientation. In Proceedings of FME’94, Formal Methods Europe, pp. 326–345, Lecture Notes in Computer Science 873, M. Naftalin, T. Denvir, M. Bertran (Eds.), Springer-Verlag, 1994.
O. NierStrasz. A Survey of Object-Oriented Concepts. In Object-Oriented Concepts, Databases, and Applications, W. Kim and F.H. Lochovsky (Eds.), pp. 3–21, ACM Press and Addison-Wesley, 1989.
D.A. Schmidt. Denotational Semantics: A Methodology for Language Development. Wm C. Brown Publishers (Dubuque Iowa), 1988.
A. Snyder. Encapsulation and Inheritance in Object-Oriented Programming Languages. In Proceedings of the OOPSLA’86 Conference, ACM Sigplan Notices, 21(11), pp 38–45, ACM Press, 1986.
L.A. Stein. Delegation is Inheritance, In Proceedings of the OOPSLA’87 Conference, ACM Sigplan Notices, 22(12), pp. 138–146, ACM Press, 1987.
L.A. Stein, H. Lieberman, D. Ungar. A Shared View of Sharing: The Treaty of Orlando. In Object-Oriented Concepts, Databases, and Applications, W. Kim and F.H. Lochovsky (Eds.), pp. 31–48, ACM Press 1989.
P. Steyaert. Open Design of Object-Oriented Languages: A Foundation for Specialisable Reflective Language Frameworks. Phd. thesis Vrije Universiteit Brussel, 1994.
P. Steyaert, W. Codenie, T. D’Hondt, K. De Hondt, C. Lucas, M. Van Limberghen. Nested Mixin-Methods in Agora. In Proceedings of ECOOP’93 7th European Conference on Object-Oriented Programming, Lecture Notes in Computer Science 707, O. Nierstrasz (Ed.), pp. 197–219, Springer-Verlag, 1993.
P. Wegner. Dimensions of Object-Based Language Design. In Proceedings of the OOPSLA’87 Conference, ACM Sigplan Notices, 22(12), pp. 168–182, ACM Press, 1987.
P. Wegner, S. B. Zdonik. Inheritance as an Incremental Modification Mechanism, or What Like is and Isn’t Like. In Proceedings of ECOOP’88 European Conference on Object-Oriented Programming, Lecture Notes in Computer Science 322, S. Gjessing and K. Nygaard (Eds.), pp.55–77, Springer-Verlag 1988.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1995 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Steyaert, P., De Meuter, W. (1995). A Marriage of Class- and Object-Based Inheritance Without Unwanted Children. In: Tokoro, M., Pareschi, R. (eds) ECOOP’95 — Object-Oriented Programming, 9th European Conference, Åarhus, Denmark, August 7–11, 1995. ECOOP 1995. Lecture Notes in Computer Science, vol 952. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-49538-X_7
Download citation
DOI: https://doi.org/10.1007/3-540-49538-X_7
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-60160-9
Online ISBN: 978-3-540-49538-3
eBook Packages: Springer Book Archive