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
A method of automatic assessment of feature compatibility in mobile networks
Szymon Fedor,Liam Fallon +1 more
- 21 Apr 2010
TL;DR: A new method for automatic end-to-end assessment of compatibility between network features in a telecom network is described that enables fast, easy and accurate decision making regarding the planning of new feature deployment or the upgrade of already existing features.
How do practitioners recognise software design quality : a questionnaire survey
Jamie Stevenson,Murray Wood +1 more
- 01 Jan 2016
TL;DR: In this paper, a survey was conducted to discover the extent to which practitioners concern themselves with software design quality and the approaches used when considering design quality in practice, finding that individual and peer experience are major contributors to design quality.
True) Polymorphism in SPARK2000
Tse-Min Lin,John McDermid +1 more
- 26 Jun 2000
TL;DR: SPARK2000 as discussed by the authors is an extension to the SPARK95 language to support object-oriented programming, which is specifically intended for the implementation of high integrity systems, and it is designed to be used in high integrity applications.
Verifying Interaction between Methods in Classes
Tingting Hu,Shuling Wang,Zongyan Qiu +2 more
- 12 Sep 2015
TL;DR: It is shown that if all the inherited methods of a subclass satisfy behavioral subtyping, then the subclass conforms to the algebraic specification of its superclass, i.e., there is no need to re-verify the conformance of the method implementations.
Sound and Relaxed Behavioural Inheritance
Nuno Amálio
- 01 Jan 2019
TL;DR: This paper revisits BI at the light of Z and the theory of data refinement, and proposes improved relaxations that are applicable to any OO language that supports design-by-contract (DbC).
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.