Clyde Ruby
Iowa State University
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Clyde Ruby.
ACM Sigsoft Software Engineering Notes | 2006
Gary T. Leavens; Albert L. Baker; Clyde Ruby
JML is a behavioral interface specification language tailored to Java(TM). Besides pre- and postconditions, it also 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. JML combines this idea from Eiffel with the model-based approach to specifications, typified by VDM and Larch, which results in greater expressiveness. Other expressiveness advantages over Eiffel include quantifiers, specification-only variables, and frame conditions.This paper discusses the goals of JML, the overall approach, and describes the basic features of the language through examples. It is intended for readers who have some familiarity with both Java and behavioral specification using pre- and postconditions.
Behavioral Specifications of Businesses and Systems | 1999
Gary T. Leavens; Albert L. Baker; Clyde Ruby
JML is a behavioral interface specification language tailored to Java. It is designed to be written and read by working software engineers, and should require only modest mathematical training. It uses Eiffel-style syntax combined with model-based semantics, as in VDM and Larch. JML supports quantifiers, specification-only variables, and other enhancements that make it more expressive for specification than Eiffel and easier to use than VDM and Larch.
conference on object-oriented programming systems, languages, and applications | 2000
Gary T. Leavens; Clyde Ruby; K. Rustan M. Leino; Erik Poll; Bart Jacobs
JML is a notation for specifying the detailed design of Java classes and interfaces. JMLs assertions are stated using a slight extension of Javas expression syntax. This should make it easy to use. Tools for JML aid in static analysis, verification, and run-time debugging of Java code.
conference on object-oriented programming systems, languages, and applications | 2000
Clyde Ruby; Gary T. Leavens
A major problem for object-oriented frameworks and class libraries is how to provide enough information about a superclass, so programmers can safely create new subclasses without giving away the superclasss code. Code inherited from the superclass can call down to methods of the subclass, which may cause nontermination or unexpected behavior. We describe a reasoning technique that allows programmers, who have no access to the code of the superclass, to determine both how to safely override the superclasss methods and when it is safe to call them. The technique consists of a set of rules and some new forms of specification. Part of the specification would be generated automatically by a tool, a prototype of which is planned for the formal specification language JML. We give an example to show the kinds of problems caused by method overrides and how our technique can be used to avoid them. We also argue why the technique is sound and give guidelines for library providers and programmers that greatly simplify reasoning about how to avoid problems caused by method overrides.
conference on object-oriented programming systems, languages, and applications | 2000
Gary T. Leavens; Clyde Ruby; K. Rustan; M. Leino; Erik Poll; Bart Jacobs
Archive | 1998
Gary T. Leavens; Albert L. Baker; Clyde Ruby
Archive | 2001
Gary T. Leavens; Albert L. Baker; Clyde Ruby
Archive | 1998
Gary T. Leavens; Albert L. Baker; Clyde Ruby
Archive | 1997
Gary T. Leavens; Clyde Ruby
Modular subclass verification: safely creating correct subclasses without superclass code | 2006
Gary T. Leavens; Clyde Ruby