skip to main content
10.1145/1040305.1040326acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article

Separation logic and abstraction

Published:12 January 2005Publication History

ABSTRACT

In this paper we address the problem of writing specifications for programs that use various forms of modularity, including procedures and Java-like classes. We build on the formalism of separation logic and introduce the new notion of an abstract predicate and, more generally, abstract predicate families. This provides a flexible mechanism for reasoning about the different forms of abstraction found in modern programming languages, such as abstract datatypes and objects. As well as demonstrating the soundness of our proof system, we illustrate its utility with a series of examples.

References

  1. M. Abadi and L. Cardelli. A theory of objects. Springer, 1996.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. M. Barnett, R. DeLine, M. Fähndrich, K.R.M. Leino, and W. Schulte. Verification of object-oriented programs with invariants. Journal of Object Technology, 2004.]]Google ScholarGoogle ScholarCross RefCross Ref
  3. G.M. Bierman and M.J. Parkinson. Effects and effect inference for a core Java calculus. In Proceedings of WOOD, volume 82 of ENTCS, 2004.]]Google ScholarGoogle Scholar
  4. L. Birkedal, N. Torp-Smith, and J.C. Reynolds. Local reasoning about a copying garbage collector. In Proceedings of POPL, 2004.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. R. Bornat, C. Calcagno, P. O'Hearn, and M. Parkinson. Permissions accounting in separation logic. Proceedings of POPL, 2005.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. D. Clarke and S. Drossopolou. Ownership, encapsulation and the disjointness of type and effect. In Proceedings of OOPSLA, 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. S. Drossopoulou and M. Smith. Cheaper reasoning with ownership types. In Proceedings of IWACO, 2003.]]Google ScholarGoogle Scholar
  8. J. Ellis and L. Ho. JDBC 3.0 specification, 2001. http://java.sun.com/products/jdbc/download.html.]]Google ScholarGoogle Scholar
  9. M. Grand. Patterns in Java, volume 1. Wiley, second edition, 2002.]]Google ScholarGoogle Scholar
  10. J. Guttag. The Specification and Applications to Programming of Abstract Data Types. PhD thesis, Dept. of Computer Science, University of Toronto, 1975.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. C. A. R. Hoare. Proof of correctness of data representations. Acta Informatica, 1(4):271--281, 1972.]]Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. B. W. Kernighan and D. M. Ritchie. The C Programming Language, Second Edition. Prentice-Hall, 1988.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. J. Lamping. Typing the specialization interface. In Proceedings of OOPSLA, 1993.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. K.R.M. Leino. Data groups: Specifying the modification of extended state. In Proceedings of OOPSLA, 1998.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. K.R.M. Leino and G. Nelson. Data abstraction and information hiding. ACM Transactions on Programming Languages and Systems, 24:491--553, September 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. B. Liskov and S.N. Zilles. Programming with abstract data types. In Proceedings of Symposium on Very High Level Programming Languages, 1974.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. B.H. Liskov and J.M. Wing. A behavioral notion of subtyping. ACM TOPLAS, 16(6):1811--1841, 1994.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. R. Middelkoop, K. Huizing, and R. Kuiper. A Separation Logic Proof System for a Class-based Language. In Proceedings of LRPP, 2004.]]Google ScholarGoogle Scholar
  19. I. Mijajlović and N. Torp-Smith. Refinement in a separation context. In Proceedings of FSTTCS, 2004.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. J.C. Mitchell and G.D. Plotkin. Abstract types have existential type. ACM Trans. Program. Lang. Syst., 10(3):470--502, 1988.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. P.W. O'Hearn. Resources, concurrency and local reasoning. Invited paper, inphProceedings of CONCUR, 2004.]]Google ScholarGoogle Scholar
  22. P.W. O'Hearn, H.Yang, and J.C. Reynolds. Separation and information hiding. In Proceedings of POPL, 2004.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. P.W. O'Hearn, J.C. Reynolds, and H. Yang. Local reasoning about programs that alter data structures. In Proceedings of CSL, 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. D. Oheimb and T. Nipkow. Hoare logic for NanoJava: Auxiliary variables, side effects and virtual methods revisited. In Formal Methods Europe, 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. D.L. Parnas. The secret history of information hiding. In Software Pioneers: Contributions to Software Engineering. Springer, 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. C. Pierik and F.S. de Boer. A syntax-directed Hoare logic for object-oriented programming concepts. In Formal Methods for Open Object-Based Distributed Systems, 2003.]]Google ScholarGoogle ScholarCross RefCross Ref
  27. A. Poetzsch-Heffter and P. Müller. A programming logic for sequential Java. In Proceedings of ESOP, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. U.S. Reddy. Objects and classes in Algol-like languages. Information and Computation, 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. J.C. Reynolds. Separation logic: A logic for shared mutable data structures. In Proceedings of LICS, 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. R. Stata. Modularity in the presence of subclassing. Technical Report 145, Digital Equipment Corporation Systems Research Center, April 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. H. Yang. Local reasoning for stateful programs. PhD thesis, University of Illinois, July 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Separation logic and abstraction

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in
          • Published in

            cover image ACM Conferences
            POPL '05: Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
            January 2005
            402 pages
            ISBN:158113830X
            DOI:10.1145/1040305
            • General Chair:
            • Jens Palsberg,
            • Program Chair:
            • Martín Abadi
            • cover image ACM SIGPLAN Notices
              ACM SIGPLAN Notices  Volume 40, Issue 1
              Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
              January 2005
              391 pages
              ISSN:0362-1340
              EISSN:1558-1160
              DOI:10.1145/1047659
              Issue’s Table of Contents

            Copyright © 2005 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 12 January 2005

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • Article

            Acceptance Rates

            Overall Acceptance Rate824of4,130submissions,20%

            Upcoming Conference

            POPL '25

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader