scispace - formally typeset
Journal ArticleDOI

A behavioral notion of subtyping

Reads0
Chats0
TLDR
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.
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

Citations
More filters
Proceedings ArticleDOI

Cyber Physical Systems: Design Challenges

TL;DR: It is concluded that it will not be sufficient to improve design processes, raise the level of abstraction, or verify designs that are built on today's abstractions to realize the full potential of cyber-Physical Systems.
MonographDOI

Introduction to Software Testing: List of Figures

Paul Ammann, +1 more
TL;DR: The structure of the text directly reflects the pedagogical approach and incorporates the latest innovations in testing, including techniques to test modern types of software such as OO, web applications and embedded software.
Journal ArticleDOI

Preliminary design of JML: a behavioral interface specification language for java

TL;DR: JML as mentioned in this paper is a behavioral interface specification language tailored to Java (TM) that allows assertions to be intermixed with Java code; these aid verification and debugging. JML is designed to be used by working software engineers; to do this it follows Eiffel in using Java expressions in assertions.
References
More filters
Book

The C++ Programming Language

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.
Book

Programming from specifications

TL;DR: This second edition features substantial restructuring of earlier material, streamlining the introduction of programming language features; simplified presentation of procedures, parameters and recursion; an expanded chapter on data refinement, giving the much simpler laws that specialize to functional abstractions.

The C++ programming language

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.