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
Axioms and Abstract Predicates on Interfaces in Specifying/Verifying OO Components
Ali Hong,Yijing Liu,Zongyan Qiu +2 more
- 27 Oct 2013
TL;DR: This paper develops a framework to support the abstract specification for the interfaces of components and their interactions, and the related verification, and shows also that the abstract specifications on the interface-level can be used to enforce correct implementations of the components.
1
Making Objects More Knowledgeable
Susanne Schacht,Udo Hahn +1 more
TL;DR: A corresponding model is proposed that extends object-oriented programming into the classification-based paradigm of terminological reasoning and considers a natural language understanding task to demonstrate its application.
1
Building Hierarchical Component Directories
Nour Alhouda Aboud,Gabriela Arévalo,Olivier Bendavid,Jean-Rémy Falleri,Nicolas Haderer,Marianne Huchard,Chouki Tibermacine,Christelle Urtado,Sylvain Vauttier +8 more
TL;DR: A refined methodology based on a substitutability relationship between components, where the notion of not having a parameter or an interface of some type makes the methodology more robust when considering required interfaces, and a tool to build a hi- erarchically structured component directory.
CHOReOS State of the Art, Baseline, and Beyond (D1.1)
Valérie Issarny,Antonia Bertolino,G. De Angelis,Amira Ben Amida,Jean-Pierre Lorré,Nikolaos Georgantas,Animesh Pathak,James Lockerbie,Neil Maden,Marco Autili,Davide Di Ruscio,Massimo Tivoli,Dionysis Athanasopoulos,Panos Vassiliadis,Apostolos V. Zarras,Alfredo Goldman,Marco Aurélio Gerosa,Fabio Kon,Teodoro De Giorgio,Gianmarco Panza,Maurilio Zuccalà,Andrea Polini +21 more
- 21 Jan 2011
TL;DR: The D1.1 deliverable as discussed by the authors clarifies baseline, progress, and state of the art that CHOReOS will address and gives a precise definition of the state-of-the-art.
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.