MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  When separation logic met Java (by example)

Download:
Download as a PDF
by Matthew Parkinson
http://www.cl.cam.ac.uk/~mjp41/OOBehave.pdf
Add To MetaCart

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