Inheritance as an Incremental Modification Mechanism or What Like Is and Isn’t Like

  • Peter Wegner
  • Stanley B. Zdonik
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 322)

Abstract

Incremental modification is a fundamental mechanism not only in software systems, but also in physical and mathematical systems. Inheritance owes its importance in large measure to its flexibility as a discrete incremental modification mechanism. Four increasingly permissive properties of incremental modification realizable by inheritance are examined: behavior compatibility, signature compatibility. name compatibility, and cancellation. Inheritance for entities with finite sets of attributes is defined and characterized as incremental modification with deferred binding of self-reference. Types defined as predicates for type checking are contrasted with classes defined as templates for object generation. Mathematical, operational, and conceptual models of inheritance are then examined in detail, leading to a discussion of algebraic models of behavioral compatibility. horizontal and vertical signature modification, algorithmically defined name modification, additive and subtractive exceptions, abstract inheritance networks, and parametric polymorphism. Liketypes are defined as a symmetrical general form of incremental modification that provide a framework for modeling similarity. The combination of safe behaviorally compatible changes and less safe radical incremental changes in a single programming language is considered.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

11. References

  1. [AN]
    Ait Kaci H. and Nasr R., Login: A Logic Programming Language with Built-in Inheritance, Journal of Logic Programming, 1986.Google Scholar
  2. [Bo]
    Borgida A., Exceptions in Object-Oriented Languages, Sigplan Notices, Oct 1986.Google Scholar
  3. [Br1]
    Brachman, R., “I Lied About the Trees Or Defaults and Definitions in Knowledge Representation”, AI Magazine, Fall, 1985.Google Scholar
  4. [Br2]
    Brachman, R., “What Is-a is and Isn’t”, AI Magazine, Fall 1985.Google Scholar
  5. [BW]
    Bruce K. B., and Wegner P., An Algebraic Model of Subtypes and Inheritance, Brown University Report, July 1987, also in Proc Roscoff Conference on Database Programming Languages, Sept 1987.Google Scholar
  6. [Ca]
    Cardelli L., A Semantics of Multiple Inheritance, In LNCS Vol 173, Ed G. Kahn, 1984.Google Scholar
  7. [CW]
    Cardelli, L. and Wegner, P., On Understanding, Types, Data Abstraction, and Polymorphism, ACM Computing Surveys, December, 1985.Google Scholar
  8. [Co1]
    Cook, W., A Denotational Semantic Model of Inheritance, Forthcoming PhD Thesis, Brown University Summer 1988.Google Scholar
  9. [Co2]
    Cook, W., The Semantics of Inheritance, Brown University Technical Report, March 1988.Google Scholar
  10. [DOD]
    Ada Reference Manual, US Dept of Defense, July 1980.Google Scholar
  11. [Et]
    Etherington D. W., Formalizing Nonmonotonic Reasoning, Artificial Intelligence, 1987.Google Scholar
  12. [GR]
    Goldberg, A. and Robson. Smalltalk80: The Language and Its Implementation, Addison-Wesley, 1983.Google Scholar
  13. [Ha]
    Harper R., An Introduction to ML, Edinburgh University Technical Report, 1987.Google Scholar
  14. [LSAS]
    Liskov B., Snyder A., Atkinson R., and Schaffert C., Abstraction Mechanisms in CLU, CACM, August 1987.Google Scholar
  15. [Me]
    Meyer B., Object-Oriented Software Construction, Prentice Hall. 1988.Google Scholar
  16. [Mi]
    Milner R., A Proposal for Standard ML, Proc Symposium on Lisp and Functional Programming, ACM, August 1984.Google Scholar
  17. [ML]
    Martin-Lof P., Constructive Mathematics and Computer Programming, in Mathematical Logic and Computer Programming, Hoare and Shepherdson Eds. Prentice Hall International, 1985.Google Scholar
  18. [Re]
    Reiter R., A Logic for Default Reasoning, Artificial Intelligence, 1980.Google Scholar
  19. [Sc]
    Scott D., Data Types as Lattices, Siam Journal of Computing, September 1976.Google Scholar
  20. [Sn]
    Snyder, A., Encapsulation and Inheritance in Object-Oriented Languages, OOPSLA, 1986.Google Scholar
  21. [Str]
    Strachey C., Fundamental Concepts in Programming Languages, lecture Notes for International Summer School in Computer Programming, Copenhagen. August 1967.Google Scholar
  22. [THT1]
    Thomason, R. H., Horty, J. F., and Touretzky, D., A Calculus for Inheritance in Monotonic Semantic Nets, CMU-CS-86-138, July 1986.Google Scholar
  23. [THT2]
    Touretzky, D. S., Horty, J. F., and Thomasson R. H., A Clash of Intuitions: The Current State of Nonmonotonic Multiple Inheritance Systems. Proc IJCAI-87.Google Scholar
  24. [To]
    Touretzky, D., The Mathematical Theory of Inheritance, Morgan-Kaufman. 1986.Google Scholar
  25. [We1]
    Wegner, P., Object-Oriented Concept Hierarchies. Brown University Technical Report, May 1988.Google Scholar
  26. [We2]
    Wegner, P., The Object-Oriented Classification Paradigm, in Research Directions in Object-Oriented Programming, Edited by Shriver and Wegner. MIT Press, 1987.Google Scholar
  27. [Zd]
    Zdonik S. B., Can Objects Change Type? Can Type Objects Change?, Proc Roscoff Conference on Database Programming Languages. Sept 1987.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1988

Authors and Affiliations

  • Peter Wegner
    • 1
  • Stanley B. Zdonik
    • 1
  1. 1.Department of Computer ScienceBrown UniversityProvidence

Personalised recommendations