skip to main content
OSTI.GOV title logo U.S. Department of Energy
Office of Scientific and Technical Information

Title: Checking software contracts

Conference ·
OSTI ID:210042

In object-oriented software, contracts between classes can be expressed in terms of preconditions, postconditions and invariants. In the programming language Eiffel, contracts can be checked at run-time. Within inheritance hierarchies, contracts can be used to control the redefinition of services. In Eiffel, the rules ensure that redefinition is safe in the presence of polymorphism and dynamic binding. This paper shows that Eiffel`s support for contracts can be extended, both to cover the polymorphic case more fully, and to cover other uses of inheritance, including its use for selectively reusing code from a parent class. The paper proposes that software designers should state what properties they claim for any uses of inheritance, in order that extra checks on consistency can be applied, and shows that some extra debugging power could be obtained easily, by changing only the run-time system for Eiffel, rather than the language itself.

OSTI ID:
210042
Report Number(s):
CONF-950773-; TRN: 96:000709-0009
Resource Relation:
Conference: 17. international conference and exhibition on technology of object-oriented languages and systems, Santa Barbara, CA (United States), 31 Jul - 4 Aug 1995; Other Information: PBD: 1995; Related Information: Is Part Of Technology of object-oriented languages and systems TOOLS 17; Ege, R.; Singh, M.; Meyer, B. [eds.]; PB: 452 p.
Country of Publication:
United States
Language:
English

Similar Records

Emulating Multiple Inheritance in Fortran 2003/2008
Journal Article · Thu Jan 01 00:00:00 EST 2015 · Scientific Programming · OSTI ID:210042

RIPE: An object-oriented Robot Independent Programming Environment
Conference · Mon Jan 01 00:00:00 EST 1990 · OSTI ID:210042

An object-oriented environment for robot system architectures
Conference · Sun Jan 01 00:00:00 EST 1989 · OSTI ID:210042