Separation Logic for Object-Oriented Programming

  • Matthew Parkinson
  • Gavin Bierman
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7850)

Abstract

In this article we propose techniques based on separation logic to reason about object-oriented programs. This leads to a modular proof system that can deal with features considered core to object-oriented programming, including object encapsulation, subclassing, inheritance, and dynamic dispatch.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Ishtiaq, S., O’Hearn, P.W.: BI as an assertion language for mutable data structures. In: Proceedings of POPL, pp. 14–26 (2001)Google Scholar
  2. 2.
    Parkinson, M.J., Bierman, G.M.: Separation logic and abstraction. In: Proceedings of POPL, pp. 247–258 (2005)Google Scholar
  3. 3.
    Parkinson, M.J.: Local Reasoning for Java. PhD thesis, Computer Laboratory, University of Cambridge, UCAM-CL-TR-654 (2005)Google Scholar
  4. 4.
    Parkinson, M.J., Bierman, G.M.: Separation logic, abstraction and inheritance. In: Proceedings of POPL, pp. 75–86 (2008)Google Scholar
  5. 5.
    Clarke, D.G., Potter, J.M., Noble, J.: Ownership types for flexible alias protection. In: Proceedings of OOPSLA, pp. 48–64 (1998)Google Scholar
  6. 6.
    Dietl, W., Müller, P.: Universes: Lightweight ownership for JML. Journal of Object Technology 4(8), 5–32 (2005)CrossRefGoogle Scholar
  7. 7.
    Barnett, M., Leino, K.R.M., Schulte, W.: The Spec# Programming System: An Overview. In: Barthe, G., Burdy, L., Huisman, M., Lanet, J.-L., Muntean, T. (eds.) CASSIS 2004. LNCS, vol. 3362, pp. 49–69. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  8. 8.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley (1994)Google Scholar
  9. 9.
    Kassios, I.: The dynamic frames theory. Formal Aspects of Computing 23, 267–288 (2011)MathSciNetMATHCrossRefGoogle Scholar
  10. 10.
    Igarashi, A., Pierce, B.C., Wadler, P.: Featherweight Java: A minimal core calculus for Java and GJ. ACM TOPLAS 23(3), 396–450 (2001)CrossRefGoogle Scholar
  11. 11.
    O’Hearn, P.W., Reynolds, J., Yang, H.: Local Reasoning about Programs that Alter Data Structures. In: Fribourg, L. (ed.) CSL 2001. LNCS, vol. 2142, pp. 1–19. Springer, Heidelberg (2001)Google Scholar
  12. 12.
    Distefano, D., Parkinson, M.J.: jStar: towards practical verification for Java. In: Proceedings of OOPSLA, pp. 213–226 (2008)Google Scholar
  13. 13.
    Reynolds, J.C.: Separation logic: A logic for shared mutable data structures. In: Proceedings of LICS, pp. 55–74 (2002)Google Scholar
  14. 14.
    Liskov, B.H., Wing, J.M.: A behavioral notion of subtyping. ACM TOPLAS 16(6), 1811–1841 (1994)CrossRefGoogle Scholar
  15. 15.
    Abadi, M., Cardelli, L.: A theory of objects. Springer (1996)Google Scholar
  16. 16.
    van Staden, S., Calcagno, C.: Reasoning about multiple related abstractions with MultiStar. In: Proceedings of OOPSLA, pp. 504–519 (2010)Google Scholar
  17. 17.
    Bierman, G., Parkinson, M., Noble, J.: UpgradeJ: Incremental Typechecking for Class Upgrades. In: Vitek, J. (ed.) ECOOP 2008. LNCS, vol. 5142, pp. 235–259. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  18. 18.
    O’Hearn, P.W., Yang, H., Reynolds, J.C.: Separation and information hiding. In: Proceedings of POPL, pp. 268–280 (2004)Google Scholar
  19. 19.
    Biering, B., Birkedal, L., Torp-Smith, N.: BI hyperdoctrines, higher-order separation logic and abstraction. ACM TOPLAS 29(5) (2007)Google Scholar
  20. 20.
    Krishnaswami, N.R., Aldrich, J., Birkedal, L., Svendsen, K., Buisse, A.: Design patterns in separation logic. In: Proceedings of TLDI, pp. 105–116 (2009)Google Scholar
  21. 21.
    Nanevski, A., Ahmed, A., Morrisett, G., Birkedal, L.: Abstract Predicates and Mutable ADTs in Hoare Type Theory. In: De Nicola, R. (ed.) ESOP 2007. LNCS, vol. 4421, pp. 189–204. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  22. 22.
    Petersen, R.L., Birkedal, L., Nanevski, A., Morrisett, G.: A Realizability Model for Impredicative Hoare Type Theory. In: Drossopoulou, S. (ed.) ESOP 2008. LNCS, vol. 4960, pp. 337–352. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  23. 23.
    Poetzsch-Heffter, A., Müller, P.O.: A Programming Logic for Sequential Java. In: Swierstra, S.D. (ed.) ESOP 1999. LNCS, vol. 1576, pp. 162–176. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  24. 24.
    Leavens, G.T., Baker, A.L., Ruby, C.: Preliminary design of JML: a behavioral interface specification language for Java. SIGSOFT Software Engineering Notes 31(3), 1–38 (2006)CrossRefGoogle Scholar
  25. 25.
    Chin, W.N., David, C., Nguyen, H.H., Qin, S.: Enhancing modular OO verification with separation logic. In: Proceedings of POPL, pp. 87–99 (2008)Google Scholar
  26. 26.
    Jacobs, B., Piessens, F.: The VeriFast program verifier. Technical report, Katholieke Universiteit Leuven (August 2008)Google Scholar
  27. 27.
    Smans, J., Jacobs, B., Piessens, F.: Implicit Dynamic Frames: Combining Dynamic Frames and Separation Logic. In: Drossopoulou, S. (ed.) ECOOP 2009. LNCS, vol. 5653, pp. 148–172. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  28. 28.
    Smans, J.: Specification and Automatic Verification of Frame Properties for Java-like Programs. PhD thesis, FWO-Vlaanderen (May 2009)Google Scholar
  29. 29.
    Leino, K.R.M., Müller, P.: A Basis for Verifying Multi-threaded Programs. In: Castagna, G. (ed.) ESOP 2009. LNCS, vol. 5502, pp. 378–393. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  30. 30.
    Luo, C., Qin, S.: Separation logic for multiple inheritance. ENTCS 212, 27–40 (2008)Google Scholar
  31. 31.
    Svendsen, K., Birkedal, L., Parkinson, M.: Verifying Generics and Delegates. In: D’Hondt, T. (ed.) ECOOP 2010. LNCS, vol. 6183, pp. 175–199. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  32. 32.
    Hurlin, C.: Specification and Verification of Multithreaded Object-Oriented Programs with Separation Logic. PhD thesis, Universite de Nice Sophia Antipolis (2009)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Matthew Parkinson
    • 1
  • Gavin Bierman
    • 1
  1. 1.Microsoft ResearchUK

Personalised recommendations