scispace - formally typeset
Journal ArticleDOI

Specification and verification of object-oriented programs using supertype abstraction

Reads0
Chats0
TLDR
A formal definition for legal subtype relations, based on the specified behavior of objects, is given, and it is shown that this definition is sufficient to ensure the soundness of the verification logic.
Abstract
We present a formal specification language and a formal verification logic for a simple object-oriented programming language. The language is applicative and statically typed, and supports subtyping and message-passing. The verification logic relies on a behavioral notion of subtyping that captures the intuition that a subtype behaves like its supertypes. We give a formal definition for legal subtype relations, based on the specified behavior of objects, and show that this definition is sufficient to ensure the soundness of the verification logic. The verification logic reflects the way programmers reason informally about object-oriented programs, in that it allows them to use static type information, which avoids the need to consider all possible run-time subtypes.

read more

Citations
More filters
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.

Preliminary Design of JML: A Behavioral Interface Specification

TL;DR: This paper discusses the goals of JML, the overall approach, and describes the basic features of the language through examples, intended for readers who have some familiarity with both Java and behavioral specification using pre- and postconditions.
Journal ArticleDOI

Abstraction and specification in program development

TL;DR: Abstraction and specification in program development will lead you to love reading starting from now and will improve your quality of the life however is the role.
DissertationDOI

A Runtime Assertion Checker for the Java Modeling Language (JML)

TL;DR: A runtime assertion checker for the Java Modeling Language (JML) that helps in assigning blame during debugging and in automatic generation of test oracles, which represents a significant advance over the current state of the art.
References
More filters
Book

Object-Oriented Software Construction

TL;DR: Object-Oriented Software Construction, second edition is the comprehensive reference on all aspects of object technology, from design principles to Object- Oriented techniques, Design by Contract, Object-O Oriented analysis, concurrency, persistence, abstract data types and many more.
Book

Smalltalk-80: The Language and its Implementation

TL;DR: This book is the first detailed account of the Smalltalk-80 system and is divided into four major parts: an overview of the concepts and syntax of the programming language, a specification of the system's functionality, and an example of the design and implementation of a moderate-size application.
Book

Universal Algebra

Book

A mathematical introduction to logic

TL;DR: A comparison of first- and second-order logic in the case of SETs shows that the former is more likely to be correct and the latter is less likely.