Toward Principles of Inheritance and Subtyping in Programming Languages

  • Authors:
  • J. E Moss;Alexander L. Wolf

  • Affiliations:
  • -;-

  • Venue:
  • Toward Principles of Inheritance and Subtyping in Programming Languages
  • Year:
  • 1988

Quantified Score

Hi-index 0.00

Visualization

Abstract

THE CONCEPTS OF INHERITANCE AND SUBTYPING ARE ADDING NEW DIMENSIONS TO PROGRAMMING LANGUAGE DESIGN AND USE, BUT THEY ARE NOT AS WELL UNDERSTOOD AS LONGER ESTABLISHED IDEAS SUCH AS DATA ABSTRACTION AND MODULARITY. CONFUSION ABOUT THESE CONCEPTS LEADS TO LANGUAGE-DESIGN PROBLEMS, SUCH AS DESIGNS THAT ARE DEFICIENT WITH RESPECT TO EITHER OR BOTH CONCEPTS, THAT RESULT IN OVERLAP OR INTERFERENCE BETWEEN THE IMPLEMENTATIONS OF THE TWO CONCEPTS, OR THAT ARE POORLY UNDERSTOOD OR DESCRIBED. LANGUAGE-DESIGN PROBLEMS IN TURN LEAD TO LANGUAGE-USAGE PROBLEMS, SUCH AS UNCERTAINTY ABOUT HOW TO USE INHERITANCE AND SUBTYPING, UNCERTAINTY ABOUT WHICH MECHANISM TO USE, AND CONFLICTING STYLES OF USE WITHIN A SOFTWARE SYSTEM. IN THIS PAPER WE ATTEMPT TO CLARIFY THE ISSUES SURROUNDING INHERITANCE AND SYBTYPING IN PROGRAMMING LANGUAGES. OUR APPROACH TO THIS TASK IS BASED ON A BELIEF THAT INHERITANCE AND SUBTYPING MUST BE TREATED AS SEPARATE, ALTHOUGH NOT INDEPENDENT, ASPECTS OF LANGUAGE DESIGN. WE BEGIN BY OFFERING DEFINITIONS OF INHERITANCE AND SUBTYPING THAT HELP IN CHARACTERIZING THE RELATIONSHIP BETWEEN THESE CONCEPTS. IN LIGHT OF THESE DEFINITIONS, WE BRIEFLY REVIEW THE VARIETY OF INHERITANCE AND SUBTYPING MECHANISMS FOUND IN MODERN PROGRAMMING LANGUAGES. WE THEN ADVANCE A NOTION THAT WE CALL `BEHAV- IORAL ABSTRACTION''. BASED UPON THAT NOTION, WE PROPOSE AND DISCUSS A NUMBER OF PRAGMATIC PRINCIPLES OF PROGRAMMING-LANGUAGE DESIGN REGARDING INHERITANC