Abstract:
Abstract. Separation logic is a promising new approach to modular reasoning, but so far it has primarily been applied to low-level C-like languages. To extend separation logic to allow modular reasoning about object-oriented languages like Java, we must add behavioural subtyping to the logic. However, a naïve integration of behavioural subtyping and separation logic is too restrictive. In this paper we demonstrate how abstract predicate families provide an abstraction mechanism that addresses these restrictions, by mirroring dynamic dispatch in the logic. We demonstrate the utility of our approach with a series of examples, including the Visitor pattern. 1
Citations
|
3619
|
Design Patterns: Elements of Reusable Object-oriented Software
– Gamma, Helm, et al.
- 1994
|
|
795
|
A Theory of Objects
– Abadi, Cardelli
- 1996
|
|
348
|
A behavioral notion of subtyping
– Liskov, Wing
- 1994
|
|
277
|
Separation logic: a logic for shared mutable data structures
– Reynolds
- 2002
|
|
134
|
Designing an object-oriented programming language with behavioural subtyping
– America
- 1990
|
|
130
|
Local reasoning about programs that alter data structures
– O’Hearn, Reynolds, et al.
|
|
113
|
Forcing behavioral subtyping through specification inheritance
– Dhara, Leavens
- 1996
|
|
81
|
W.: Verification of object-oriented programs with invariants
– Barnett, DeLine, et al.
- 2004
|
|
68
|
as an assertion language for mutable data structures
– Ishtiaq, O’Hearn, et al.
- 2001
|
|
46
|
Data Groups: Specifying the Modification of Extended State
– Leino
- 1998
|
|
43
|
Ten Years of Hoare Logic: a survey
– Apt
- 1981
|
|
39
|
Typestates for objects
– DeLine, Fähndrich
- 2004
|
|
31
|
Resources, concurrency and local reasoning
– O’Hearn
- 2007
|
|
30
|
Separation logic and abstraction
– Bierman, Parkinson
- 2005
|
|
15
|
2005. Local reasoning for Java
– Parkinson, Nov
|
|
5
|
Variables as resource in Separation Logic
– Bornat, Calcagno, et al.
- 2005
|
|
4
|
Effects and effect inference for a core java calculus
– Bierman, Parkinson
- 2004
|
|
4
|
Variables as resource in Hoare logics
– Parkinson, Bornat, et al.
- 2006
|
|
2
|
Oheimb. Hoare logic for mutual recursion and local variables
– von
- 1999
|