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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
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)
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)
Chen, Y., Sanders, J.W.: A pointer logic for object diagrams. Technical report, International Institute for Software Technology, The United Nations University (2007)
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)
Ishtiaq, S., O’Hearn, P.W.: BI as an assertion language for mutable data structures. In: POPL 2001. ACM, New York (2001)
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)
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)
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)
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)
Morgan, C.: Programming from Specifications. Prentice Hall, Englewood Cliffs (1998)
Müller, P.: Modular Specification and Verification of Object-Oriented Programs. LNCS, vol. 2262. Springer, Heidelberg (2002)
Noble, J., Biddle, R., Tempero, E., Potanin, A., Clarke, D.: Towards a model of encapsulation. Technical report, Elvis Software Design Research Group (2003)
Parkinson, M.J., Bierman, G.M.: Separation logic, abstraction and inheritance. In: Principles of Programming Languages (POPL 2008). ACM, New York (2008)
Parkinson, M.J.: Local reasoning for Java. PhD thesis, University of Cambridge (2005)
Reynolds, J.C.: Separation logic: A logic for shared mutable data structures. In: LICS 2002. IEEE Computer Society, Los Alamitos (2002) (Invited paper)
Yang, H.: Local Reasoning for Stateful Programs. PhD thesis, University of Illinois at Urbana-Champaign (Technical Report UIUCDCS-R-2001-2227) (2001)
Zhao, L., Liu, X., Liu, Z., Qiu, Z.: Graph transformations for object-oriented refinement. Formal Aspects in Computing 21(1), 103–131 (2009)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)