Abstract
A model of subobjects and subobject selection gives us a concise expression of key semantic relationships in a variety of inheritance-based languages. Subobjects and their selection have been difficult to reason about explicitly because they are not explicit in the languages that support them. The goal of this paper is to present a relatively simple calculus to describe subobjects and subobject selection explicitly. Rather than present any deep theorems here, we develop a general calculus that can be used to explore the design of inheritance systems.
Research partially supported by NSF grant CCR-9302114.
Received support from NSF grants CCR-9304144 and CCR-9404646.
This is a preview of subscription content, log in via an institution.
Preview
Unable to display preview. Download preview PDF.
References
Information Processing Systems Accredited Standards Committee X3. Working paper for draft proposed international standard for information systems—programming language C++. Draft of 28 April 1995.
Luca Cardelli and Peter Wegner. On understanding types, data abstraction, and polymorphism. Computing Surveys, 17(4):471–522, 1985.
Daniel J. Carnese. Multiple inheritance in contemporary programming languages. Technical Report MIT/LCS/TR-328, M.I.T., Sept. 1984.
Bernard Carré and Jean-Marc Geib. The point of view notion for multiple inheritance. In Proceedings OOPSLA-ECOOP '90, ACM SIGPLAN Notices, pages 312–321, 1990.
Adriana B. Compagnoni and Benjamin C. Pierce. Multiple inheritance via intersection types. Technical Report ECS-LFCS-93-275, University of Edinburgh, 1993. Also Technical Report 93-18, C.S. Department, Catholic University Nijmegen.
William R. Cook. A Denotational Semantics of Inheritance. PhD thesis, Brown University, 1989. Technical Report CS-89-33.
William R. Cook and Jens Palsberg. A denotational semantics of inheritance and its correctness. In Proceedings OOPSLA '89, ACM SIGPLAN Notices, pages 433–443, 1989.
Ole-Johan Dahl and Kristen Nygaard. Simula—an Algol-based simulation language. CACM, 9(9):671–678, September 1966.
Roland Ducournau, Michel Habib, Marianne Huchard, and Marie-Laure Mugnier. Proposal for a monotonic multiple inheritance linearization. In Proceedings OOPSLA '94, ACM SIGPLAN Notices, pages 164–175, 1994.
Margaret A. Ellis and Bjarne Stroustrup. The Annotated C++ Reference Manual. Addison-Wesley, 1990.
Samuel Kamin. Inheritance in Smalltalk-80: A denotational definition. In Proceedings POPL '88, pages 80–87, 1988.
Gregor Kiczales, Jim des Rivières, and Daniel G. Bobrow. The Art of the Metaobject Protocol. The MIT Press, 1991.
JØrgen Lindskov Knudsen. Name collision in multiple classification hierarchies. In Proceedings ECOOP '88, LNCS 322, pages 93–108. Springer-Verlag, 1988.
Stein Krogdahl. Multiple inheritance in Simula-like languages. BIT, 25:318–326, 1984.
Benjamin C. Pierce. Programming with Intersection Types and Bounded Polymorphism. PhD thesis, Carnegie-Mellon University, Pittsburgh, PA, December 1991.
Uday Reddy. Objects as closures: Abstract semantics of object-oriented languages. In Conf. on LISP and Functional Programming, 1988.
Jonathan G. Rossie Jr. and Daniel P. Friedman. An algebraic semantics of subobjects. In Proceedings OOPSLA '95, ACM SIGPLAN Notices, pages 187–199, 1995. Published as Proceedings OOPSLA '95, ACM SIGPLAN Notices, volume 30, number 10.
Markku Sakkinen. Disciplined inheritance. In Proceedings ECOOP '89, The British Computer Society Workshop Series, pages 39–56. Cambridge University Press, 1989.
Markku Sakkinen. A critique of the inheritance principles of C++. Computing Systems, 5(1):69–110, 1992.
Markku Sakkinen. A critique of the inheritance principles of C++: Corrigendum. Computing Systems, 5(3), 1992.
Adam Seligman. FACTS: A formal analysis of C++: Type rules and semantics. B.A. Honors Thesis, Williams College, May 1995.
Andrew Shalit, Orca Starbuck, and David Moon. Dylan Reference Manual. Apple Computer, Inc., 1995. Draft of September 29, 1995.
Alan Snyder. Inheritance and the development of encapsulated software components. In B. Shriver and P. Wegner, editors, Research Directions in Object-Oriented Programming, pages 165–188. MIT Press, 1987.
Alan Snyder. Modeling the C++ object model, an application of an abstract object model. In Proceedings ECOOP '91, LNCS 512, pages 1–20. Springer-Verlag, 1991.
Guy L. Steele Jr. Common Lisp: The Language. Digital Press, 2nd edition, 1990.
Bjarne Stroustrup. Multiple inheritance for C++. Computing Systems, 2(4), 1989.
Charles Wallace. The semantics of the C++ programming language. In Egon Boerger, editor, Specification and Validation Methods for Programming Languages, pages 131–163. Clarendon Press, Oxford, 1995.
Author information
Authors and Affiliations
Corresponding author
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Rossie, J.G., Friedman, D.P., Wand, M. (1996). Modeling subobject-based inheritance. In: Cointe, P. (eds) ECOOP ’96 — Object-Oriented Programming. ECOOP 1996. Lecture Notes in Computer Science, vol 1098. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0053065
Download citation
DOI: https://doi.org/10.1007/BFb0053065
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-61439-5
Online ISBN: 978-3-540-68570-8
eBook Packages: Springer Book Archive