by Martín Abadi, K. Rustan, M. Leino
http://www.cse.ucsc.edu/~abadi/Papers/zm-verif.pdf
Add To MetaCart
Abstract:
Abstract. We develop a logic for reasoning about object-oriented programs. The logic is for a language with an imperative semantics and aliasing, and accounts for self-reference in objects. It is much like a type system for objects with subtyping, but our specifications go further than types in detailing pre- and postconditions. We intend the logic as an analogue of Hoare logic for object-oriented programs. Our main technical result is a soundness theorem that relates the logic to a standard operational semantics. 1
Citations
|
952
|
An Axiomatic Basis for Computer Programming
– Hoare
- 1969
|
|
795
|
A theory of objects
– Abadi, Cardelli
- 1996
|
|
402
|
Assigning meanings to programs
– FLOYD
- 1967
|
|
348
|
A behavioral notion of subtyping
– Liskov, Wing
- 1994
|
|
270
|
Extended static checking for Java
– Flanagan, Leino, et al.
- 2002
|
|
257
|
An Axiomatic Proof Technique for Parallel Programs I
– Owicki, Gries
- 1976
|
|
104
|
Toward reliable modular programs
– Leino
- 1995
|
|
103
|
Parametricity and local variables
– O'Hearn, Tennent
- 1995
|
|
97
|
Observable properties of higher order functions that dynamically create local names, or: What's new
– Pitts, Stark
- 1993
|
|
86
|
Towards fully abstract semantics for local variables: Preliminary report
– Meyer, Sieber
- 1988
|
|
78
|
Data abstraction and information hiding
– Leino, Nelson
- 2002
|
|
71
|
Modular Specification and Verification of Object-Oriented Programs
– Müller
- 2002
|
|
58
|
A simplified account of polymorphic references
– Harper
- 1994
|
|
48
|
Modular Specification and Verification of Object-Oriented Programs
– Leavens
- 1991
|
|
47
|
Let-floating: moving bindings to give faster programs
– Jones, Partain, et al.
- 1996
|
|
41
|
An introduction to first-order logic
– Barwise
- 1977
|
|
39
|
Ten Years of Hoare's Logic: A Survey---Part I
– Apt
- 1981
|
|
32
|
Verifying Object-Oriented Programs that Use Subtypes
– Leavens
- 1989
|
|
29
|
Reasoning and refinement in object-oriented specification languages
– Lano, Haughton
- 1992
|
|
27
|
Object-Oriented Specification Case Studies
– Lano, Haughton
- 1994
|
|
26
|
Programming language constructs for which it is impossible to obtain good Hoare axiom systems
– Clarke
|
|
25
|
Recursive object types in a logic of object-oriented programming
– Leino
- 1998
|
|
13
|
Implementing a program logic of objects in a higher-order logic theorem prover
– Hofmann, Tang
- 2000
|
|
13
|
An object-based design method for concurrent programs
– Jones
- 1992
|
|
9
|
A proof system for the parallel object-oriented language POOL
– Boer
- 1990
|
|
5
|
Polymorphic typing of an algorithmic language. Technical report, Institut National de Recherche en Informatique et en Automatique
– Leroy
- 1992
|
|
4
|
Coalgebras and monads in the semantics of Java
– Jacobs, Poll
- 2003
|
|
1
|
Special issue: formal techniques for Java programs. Concurrency and Computation: Practice and Experience
– Eisenbach, Leavens
- 2001
|