Journal Article10.1145/197320.197383
A behavioral notion of subtyping
Barbara Liskov,Jeannette M. Wing +1 more
1.2K
TL;DR: This paper presents a way of specifying types that makes it convenient to define the subtype relation, and discusses the ramifications of this notion of subtyping on the design of type families.
read more
Abstract: The use of hierarchy is an important component of object-oriented design. Hierarchy allows the use of type families, in which higher level supertypes capture the behavior that all of their subtypes have in common. For this methodology to be effective, it is necessary to have a clear understanding of how subtypes and supertypes are related. This paper takes the position that the relationship should ensure that any property proved about supertype objects also holds for its subtype objects. It presents two ways of defining the subtype relation, each of which meets this criterion, and each of which is easy for programmers to use. The subtype relation is based on the specifications of the sub- and supertypes; the paper presents a way of specifying types that makes it convenient to define the subtype relation. The paper also discusses the ramifications of this notion of subtyping on the design of type families.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
XVMF: an extensible and versatile matchmaking framework for supporting dynamic application adaptation in ubiquitous computing environments
Kyungmin Lee,Dongman Lee,Insuk Park,Seunghyun Han +3 more
- 13 Mar 2006
TL;DR: XVMF enables various substitution mechanisms to be easily developed by providing common abstracts for implementing a service substitution mechanism and allows an application or a user to select the most appropriate substitution mechanism with respect to its requirements by providing various substitution policies.
1
Automatic inference of abstract type behavior
Mihai Balint
- 20 Sep 2010
TL;DR: This paper presents early doctoral research on the automatic inference of an extended deterministic finite automaton that describes the legal usage of abstract supertypes and ensures the behavioral subtyping relation as defined by the Liskov Substitution Principle (LSP).
Reframing the Liskov substitution principle through the lens of testing
Elisa Baniassad,Alexander J. Summers +1 more
- 20 Oct 2021
TL;DR: In this paper, a new pedagogical framing of pedagogically and teaching the Liskov Substitution Principle (LSP) is proposed, where a subtype must pass its supertype's black box tests for each of its overriding methods.
1
•Posted Content
Inference Systems with Corules for Combined Safety and Liveness Properties of Binary Session Types
Luca Ciccone,Luca Padovani +1 more
TL;DR: In this paper, the authors show that generalized inference systems allow for simple and insightful characterizations of (at least some of) these combined inductive/coinductive properties of binary session types.
1
Inheriting Multiple and Repeated Parts
J. Leslie Keedy,Christian Heinlein,Gisela Menger +2 more
- 01 Jan 2004
TL;DR: In this paper, the authors describe one aspect of multiple inheritance in the Timor programming language, viz. how "parts" such as a type Radio and a type Cassette Player can be inherited, where appropriate repeatedly, in subtypes such as Radio Double Cassette Players.
1
References
•Book
The C++ Programming Language
Bjarne Stroustrup
- 01 Jan 1985
TL;DR: Bjarne Stroustrup makes C even more accessible to those new to the language, while adding advanced information and techniques that even expert C programmers will find invaluable.
8.1K
Proof of correctness of data representations
TL;DR: In this paper, a powerful method of simplifying the proofs of program correctness is suggested; and some new light is shed on the problem of functions with side-effects, and a new method for simplifying program correctness proofs is proposed.
1K
The C++ programming language
Bjarne Stroustrup
- 01 Jan 1986
TL;DR: The C Programming Language as discussed by the authors provides a complete, authoritative coverage of the C language, its standard library, and key design techniques, as well as its locales and exception safety.
935
A semantics of multiple inheritance.
Luca Cardelli
- 01 Jul 1984
TL;DR: The notion of inheritance and object-oriented programming first appeared in Simula 67 (Dahl, 1966), where objects are grouped into classes and classes can be organized into a subclass hierarchy as discussed by the authors.