Skip to main content

A Separation Logic for OO Programs

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 6921))

Abstract

We present a general storage model that reflects features of object oriented (OO) languages with pure reference semantics. Based on this model, we develop an OO Separation Logic (OOSL) to specify and verify OO programs. Many inference rules in the Separation Logic still hold in OOSL. Additionally, OOSL has certain properties important to OO reasoning. We introduce Hoare-Triple for a small OO language, and use the Schorr-Waite Marking Algorithm as a verification example.

Supported by NNSFC Grant No. 60718002 and No. 60773161.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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)

    Chapter  Google Scholar 

  2. Bozga, M., Losif, R., Lakhnech, Y.: On logics of aliasing. In: Giacobazzi, R. (ed.) SAS 2004. LNCS, vol. 3148, pp. 344–360. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  3. Chen, Y., Sanders, J.W.: A pointer logic for object diagrams. Technical report, International Institute for Software Technology, The United Nations University (2007)

    Google Scholar 

  4. Hoare, C.A.R., He, J.: A trace model for pointers and objects. In: Liu, H. (ed.) ECOOP 1999. LNCS, vol. 1628, pp. 344–360. Springer, Heidelberg (1999)

    Google Scholar 

  5. Ishtiaq, S., O’Hearn, P.W.: BI as an assertion language for mutable data structures. In: POPL 2001. ACM, New York (2001)

    Google Scholar 

  6. Ke, W., Liu, Z., Wang, S., Zhao, L.: A graph-based operational semantics of OO programs. In: Breitman, K., Cavalcanti, A. (eds.) ICFEM 2009. LNCS, vol. 5885, pp. 347–366. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  7. 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)

    Article  Google Scholar 

  8. Leavens, G.T., Leino, K.R.M., Müller, P.: Specification and verification challenges for sequential object-oriented programs. Formal Asp. Comput. 19(2), 159–189 (2007)

    Article  MATH  Google Scholar 

  9. Middelkoop, R., Huizing, K., Kuiper, R.: A separation logic proof system for a class-based language. In: Proceedings of the Workshop on Logics for Resources, Processes and Programs, LRPP (2004)

    Google Scholar 

  10. Morgan, C.: Programming from Specifications. Prentice Hall, Englewood Cliffs (1998)

    MATH  Google Scholar 

  11. Müller, P.: Modular Specification and Verification of Object-Oriented Programs. LNCS, vol. 2262. Springer, Heidelberg (2002)

    MATH  Google Scholar 

  12. Noble, J., Biddle, R., Tempero, E., Potanin, A., Clarke, D.: Towards a model of encapsulation. Technical report, Elvis Software Design Research Group (2003)

    Google Scholar 

  13. Parkinson, M.J., Bierman, G.M.: Separation logic, abstraction and inheritance. In: Principles of Programming Languages (POPL 2008). ACM, New York (2008)

    Google Scholar 

  14. Parkinson, M.J.: Local reasoning for Java. PhD thesis, University of Cambridge (2005)

    Google Scholar 

  15. Reynolds, J.C.: Separation logic: A logic for shared mutable data structures. In: LICS 2002. IEEE Computer Society, Los Alamitos (2002) (Invited paper)

    Google Scholar 

  16. Yang, H.: Local Reasoning for Stateful Programs. PhD thesis, University of Illinois at Urbana-Champaign (Technical Report UIUCDCS-R-2001-2227) (2001)

    Google Scholar 

  17. Zhao, L., Liu, X., Liu, Z., Qiu, Z.: Graph transformations for object-oriented refinement. Formal Aspects in Computing 21(1), 103–131 (2009)

    Article  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Yijing, L., Zongyan, Q. (2012). A Separation Logic for OO Programs. In: Barbosa, L.S., Lumpe, M. (eds) Formal Aspects of Component Software. FACS 2010. Lecture Notes in Computer Science, vol 6921. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-27269-1_6

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-27269-1_6

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-27268-4

  • Online ISBN: 978-3-642-27269-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics