Genericity versus inheritance

@article{Meyer1986GenericityVI,
  title={Genericity versus inheritance},
  author={Bertrand Meyer},
  journal={Journal of Pascal, Ada \& Modula-2 archive},
  year={1986},
  volume={7},
  pages={13-30}
}
  • B. Meyer
  • Published 1986
  • Computer Science
  • Journal of Pascal, Ada & Modula-2 archive
Genericity, as in Ada or ML, and inheritance, as in object-oriented languages, are two alternative techniques for ensuring better extendibility, reusability and compatibility of software components. This article is a comparative analysis of these two methods. It studies their similarities and differences and assesses to what extent each may be simulated in a language offering only the other. It shows what features are needed to successfully combine the two approaches in a statically typed… Expand
Genericity in Java with Virtual Types
This paper suggests virtual types for Java, a language mechanism which subsumes parameterized classes, while also integrating more naturally with Java's object model. The same basic mechanism is alsoExpand
Constraining Polymorphism in Statically Typed Object-Oriented Languages
TLDR
This paper first document the inadequacies of current statically typed object-oriented languages, then compares and contrast several proposed solutions focusing on their relative expressivity and complexity. Expand
Structured Inheritance for Algebraic Class Specifications
TLDR
It is proposed mechanisms to derive inherited classes whose behavior can be described in a clean way in terms of the behavior of the superclasses, and a formalization of the intuitive notion of subtyping is related to the stronger inheritance. Expand
Object-oriented programming in Ada83—genericity rehabilitated
TLDR
A scheme for single-inheritance object-oriented programming in Ada83 is presented in which methods are determined at compile time using "generic" subprogram overloading, which calls into question Bertrand Meyer's conclusions regarding the weakness of generic units. Expand
Object-oriented programming in Smalltalk and ADA
TLDR
This comparison highlights the strengths and weaknesses of both types of languages from an object-oriented perspective and provides a basis for the application of experience from Smalltalk and other object- oriented languages to increasingly widely used modular languages such as Ada and Modula-2. Expand
Inheritance and reusability
  • E. Tempero, R. Biddle
  • Computer Science
  • Proceedings 1998 Australian Software Engineering Conference (Cat. No.98EX233)
  • 1998
TLDR
It is shown that inheritance does support reusability, but does so in ways that are not well understood, and that this lack of success is due not to any particular shortcoming in inheritance, but to widespread misunderstanding of the way the technology supportsReusability. Expand
Improving Polymorphism and Concurrency in Common Object Models
TLDR
The interoperable common object model (ICOM) proposed in this dissertation is an attempt to elevate common object models (with the advanced features of polymorphism and concurrency) closer to the object models of statically typed object-oriented languages. Expand
Parametric polymorphism in Java: an approach to translation based on reflective features
TLDR
This paper introduces a homogeneous translation in which run-time information about instantiation of type-parameters is carried, allowing full integration of parame-terized types with Java typing. Expand
A functional approach to type constraints of generic definitions
  • M. Kim
  • Computer Science
  • SIGP
  • 1997
TLDR
This paper addresses a frequently encountered problem related to type constraints in many contemporary strongly typed object-oriented languages by moving some of type constraints from the generic definitions to the clients and proposes a useful programming idiom to remedy this problem. Expand
GSBL: An Algebraic Specification Language Based on Inheritance
TLDR
This paper will present a hierarchical organization for specifications, based on a different concept of inheritance which, it thinks, corresponds, methodologically, to the usual inheritance relation defined at the programming level. Expand
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 29 REFERENCES
On understanding types, data abstraction, and polymorphism
TLDR
A λ-calculus-based model for type systems that allows us to explore the interaction among the concepts of type, data abstraction, and polymorphism in a simple setting, unencumbered by complexities of production programming languages is developed. Expand
A Theory of Type Polymorphism in Programming
  • R. Milner
  • Computer Science
  • J. Comput. Syst. Sci.
  • 1978
TLDR
This work presents a formal type discipline for polymorphic procedures in the context of a simple programming language, and a compile time type-checking algorithm w which enforces the discipline. Expand
Eiffel: programming for reusability and extendibility
TLDR
The language is based on the principles of object-oriented design, augmented by features enhancing correctness, extendibility and efficiency; the environment includes a basic class library and tools for such tasks as automatic configuration management, documentation and debugging. Expand
Basic Polymorphic Typechecking
TLDR
This work is mostly interested in a particularly orderly form of polymorphism called parametric polymorphism, a property of programs which are parametric with respect to the type of some of their identifiers. Expand
Principles of OBJ2
TLDR
Four clsssrs of design principles for 01352 ate discussed briefly in this inttoduct, and then in mote detail brlnw: motlulntizntion and patnmcteriantion; (2) subsorts; (3) implcmcntnt; and (4) inlrtaction and flexibility. Expand
Specification Language
TLDR
The proposed language takes its inspiration from the effort made within the last fifty years to present mathematical works in a satisfactory way, using a strict formalism inherited from mathematics practice recognising the set theory as a sound basis for the formalisation necessity of strong structuring of the formal text. Expand
On understanding types, data abstraction, and polymorphism
TLDR
The objective is to understand the notion of type in programming languages, present a model of typed, polymorphic programming languages that reflects recent research in type theory, and examine the impact of type theory on programming languages. Expand
What IS-A Is and Isn't: An Analysis of Taxonomic Links in Semantic Networks
TLDR
In this article* the more common interpretations of IS-A are cataloged and some differences between systems that, on the surface, appear very similar are pointed out. Expand
The Correctness Problem in Computer Science
A container formed in articulated sections pivotally hinged about fold lines to provide ready access to end panels of retained packages for price-marking purposes. The container itself and a centerExpand
Joseph A
  • Goguen, Jean-Pierre Jouannaud, and Jose Messeguer, "Principles of OBJ2," in Proceedings o{ the 1985 ACM Symposium on Principles of Programming Languages, vol. 12, pp. 52-66,
  • 1985
...
1
2
3
...