Advertisement

How well do inheritance mechanisms support inheritance concepts?

  • M. Evered
  • J. L. Keedy
  • A. Schmolitzky
  • G. Menger
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1204)

Abstract

Inheritance mechanisms are used to express many different programming concepts. In this paper we analyse these inheritance concepts to determine the requirements for an inheritance mechanism which is to support the concepts well. On the basis of this analysis we identify weaknesses in current mechanisms, particularly in the areas of modelling and signature modification and show how an inheritance mechanism can better fulfil the requirements while remaining type-safe.

Keywords

Parent Type Object Type Mutual Exclusion Data Abstraction Behaviour Restriction 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [BR95]
    Baumgartner, G. & Russo, V.F. (1995) “Signatures: A Language Extension for Improving Type Abstraction and Subtype Polymorphism in C++”, Software — Practice and Experience, 25(8), pp. 863–889.Google Scholar
  2. [Bee90]
    Beeri, C. (1990) “A Formal Approach to Object-Oriented Databases”, Data and Knowledge Engineering, 5, 4, pp. 353–382.Google Scholar
  3. [BC90]
    Bracha, G. & Cook, W. (1990) “Mixin-based Inheritance”, OOPSLA '90 Proceedings.Google Scholar
  4. [CW85]
    Cardelli, L. & Wegner, P. (1985) “On understanding types, data abstractions and polymorphism”, ACM Computing Surveys, 17, 4, pp. 471–522.CrossRefGoogle Scholar
  5. [CP89]
    Cook, W. & Palsberg, J. (1989) “A Denotational Semantics of Inheritance and its Correctness”, OOPSLA '89 Proceedings.Google Scholar
  6. [Coo89]
    Cook, W.R. (1989) “A Proposal for Making Eiffel Type-Safe”, ECOOP '89 Proceedings.Google Scholar
  7. [CHC90]
    Cook, W.R., Hill, W.L. & Canning, P.S. (1990) “Inheritance is not Subtyping”, Proceedings 17th ACM Symposium on Principles of Programming Languages.Google Scholar
  8. [DG87]
    DeMichiel, L. & Gabriel, R. (1987) “The Common Lisp Object System”, ECOOP '87 Proceedings, pp.151–170.Google Scholar
  9. [GR89]
    Goldberg, A. & Robson, D. (1989) “Smalltalk-80: the language”, Addison-Wesley Series in Computer Science.Google Scholar
  10. [Kri89]
    Kristensen, B.B., et.al. (1989) “The Beta Programming Language — a Scandinavian Approach to Object-Oriented Programming”, OOPSLA '89 Tutorial Notes.Google Scholar
  11. [KA90]
    Khoshafian, S. & Abnous, R. (1990) “Object Orientation”, Wiley, New York.Google Scholar
  12. [LTP86]
    LaLonde, W., Thomas, D. & Pugh, J. (1986) “An Exemplar-Based Smalltalk”, OOPSLA '86 Proceedings.Google Scholar
  13. [LP91]
    LaLonde, W. & Pugh, J. (1991) “Subclassing ≠ Subtyping ≠ Is-a”, Journal of Object-Oriented Programming, 3/91, pp. 57–62.Google Scholar
  14. [Lis87]
    Liskov, B. (1987) “Data Abstraction and Hierarchy”, OOPSLA '87 Addendum to the Proceedings.Google Scholar
  15. [Mey86]
    Meyer, B. (1986) “Genericity versus Inheritance”, OOPSLA '86 Proceedings.Google Scholar
  16. [Mey88]
    Meyer, B. (1988) “Object-Oriented Software Construction”, International Series in Computer Science, Prentice-Hall, Englewood Cliffs.Google Scholar
  17. [Mey92]
    Meyer, B. (1992) “Eiffel: The Language”, Prentice-Hall, New York.Google Scholar
  18. [Mey96]
    Meyer, B. (1996) “The many faces of inheritance: A taxonomy of taxonomy”, IEEE Computer, May, 1996, pp. 105–108.Google Scholar
  19. [Por92]
    Porter, III, H.H. (1992) “Separating the Subtype Hierarchy from the Inheritance of Implementation”, Journal of Object-Oriented Programming, 4, 9.Google Scholar
  20. [Sch86]
    Schaffert, C. et. al. (1986) “An Introduction to Trellis/Owl”, OOPSLA '86 Proceedings.Google Scholar
  21. [Sny86]
    Snyder, A. (1986) “Encapsulation and Inheritance in Object-Oriented Programming Languages”, OOPSLA '86 Proceedings, pp. 38–45Google Scholar
  22. [Sun95]
    Sun Microsystems, Inc. (1995) “The Java Language Specification”, Version 1.0 Beta.Google Scholar
  23. [Szy92]
    Szyperski, C. (1992) “Import is Not Inheritance. Why We Need Both: Modules and Classes”, Proceedings ECOOP '92, LNCS 615, Springer Verlag.Google Scholar
  24. [Weg87]
    Wegner, P. (1987) “Dimensions of Object-Based Language Design”, OOPSLA '87 Proceedings, pp. 168–182Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1997

Authors and Affiliations

  • M. Evered
    • 1
  • J. L. Keedy
    • 1
  • A. Schmolitzky
    • 1
  • G. Menger
    • 1
  1. 1.Abteilung RechnerstrukturenUniversität UlmUlmGermany

Personalised recommendations