skip to main content
research-article

Syntactic control of interference for separation logic

Published:25 January 2012Publication History
Skip Abstract Section

Abstract

Separation Logic has witnessed tremendous success in recent years in reasoning about programs that deal with heap storage. Its success owes to the fundamental principle that one should keep separate areas of the heap storage separate in program reasoning. However, the way Separation Logic deals with program variables continues to be based on traditional Hoare Logic without taking any benefit of the separation principle. This has led to unwieldy proof rules suffering from lack of clarity as well as questions surrounding their soundness. In this paper, we extend the separation idea to the treatment of variables in Separation Logic, especially Concurrent Separation Logic, using the system of Syntactic Control of Interference proposed by Reynolds in 1978. We extend the original system with permission algebras, making it more powerful and able to deal with the issues of concurrent programs. The result is a streamined presentation of Concurrent Separation Logic, whose rules are memorable and soundness obvious. We also include a discussion of how the new rules impact the semantics and devise static analysis techniques to infer the required permissions automatically.

Skip Supplemental Material Section

Supplemental Material

popl_5a_3.mp4

References

  1. S. Abramsky and G. McCusker. Linearity, sharing and state. In Algol-like Languages tOT, chapter 20.Google ScholarGoogle Scholar
  2. S. Abramsky, K. Honda, and G. McCusker. A fully abstract game semantics for general references. In LICS 1998, pages 334--344, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. K. R. Apt. Ten years of Hoare's logic: A survey. ACM Trans. Program. Lang. Syst., 3 (4): 431--483, Oct. 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. J. Berdine and I. Wehrman. Variable conditions and CSL. Private communication, 4th April, 2011.Google ScholarGoogle Scholar
  5. K. Bierhoff. API protocol compliance in object-oriented software. Technical Report Carnegie Mellon University-ISR-09--108, Carnegie-Mellon University, Apr 2009.Google ScholarGoogle Scholar
  6. R. Bornat, C. Calcagno, P. O'Hearn, and M. Parkinson. Permission accounting in Separation Logic. In ACM Symp. on Princ. of Program. Lang., pages 59--70. ACM Press, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. R. Bornat, C. Calcagno, and H. Yang. Variables as resource in Separation Logic. In Proc. 22nd Ann. Conf. on Math. Found. of Program. Semantics (MFPS XXII) MFPS 06, pages 247--276. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. J. Boyland. Checking interference with fractional permissions. In R. Cousot, editor, Static Analysis: 10th Intern. Symp., volume 2694 of LNCS, pages 55--72. Springer, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 973)}Brinch-Hansen-monitorsP. Brinch Hansen. Operating System Principles. Prentice-Hall, Englewood Cliffs, 1973. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. P. Brinch Hansen. Structured multiprogramming. Comm. ACM, 15: 574--577, July 1972. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. S. D. Brookes. A semantics for Concurrent Separation Logic. Theoretical Comput. Sci., 375 (1--3): 227--270, Apr 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. S. D. Brookes. A revisionist history of Concurrent Separation Logic. In MFPS 2011, pages 5--28. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. S. D. Brookes. Variables as resource for shared-memory programs: Semantics and soundness. In Proc. 22nd Ann. Conf. on Math. Found. of Program. Semantics (MFPS XXII) MFPS 06, pages 123--150. DOI: 10.1016/j.entcs.2006.04.008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. L. Damas and R. Milner. Principal type-schemes for functional programs. In ACM Symp. on Princ. of Program. Lang., pages 207--212, 1982. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. J.-Y. Girard. Linear logic. Theoretical Comput. Sci., 50: 1--102, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. A. Gotsman, J. Berdine, and B. Cook. Precision and the conjunction rule in Concurrent Separation Logic. In MFPS 2011.Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. C. A. R. Hoare. Towards a theory of parallel programming. In C. A. R. Hoare and R. H. Perrott, editors, Operating Systems Techniques, pages 61--71. Academic Press, 1972.Google ScholarGoogle Scholar
  18. C. A. R. Hoare. Monitors: An operating system structuring concept. Comm. ACM, 17 (10): 549--558, Oct. 1974. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. B. J., C. Calcagno, and P. W. O'Hearn. Smallfoot: Modular automatic assertion checking with Separation Logic. In F. S. de Boer, editor, Formal Methods for Components and Objects, 4th Intern. Symp., volume 4111 of LNCS, pages 115--137. Springer-Verlag, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. K. Kapoor, K. Lodaya, and U. S. Reddy. Fine grained concurrency with Separation Logic. J. Philosophical Logic, 40 (5): 583--632, Oct 2011. 10.1007/s10992-011--9195--1.Google ScholarGoogle ScholarCross RefCross Ref
  21. M. Main, A. Melton, and M. Mislove. Proc. 22nd Ann. Conf. on Math. Found. of Program. Semantics (MFPS XXII), volume 158 of Elect. Notes in Theor. Comput. Sci. Elsevier, 2006.Google ScholarGoogle Scholar
  22. G. McCusker. A graph model for imperative computation. Logical Methods in Comp. Sci., 6 (1--2), Jan 2010.Google ScholarGoogle Scholar
  23. R. Milner. A theory of type polymorphism in programming. J. Comput. Syst. Sci., 17: 348--375, 1978.Google ScholarGoogle ScholarCross RefCross Ref
  24. M. Mislove and J. Ouaknine, editors. Proc. 27nd Ann. Conf. on Math. Found. of Program. Semantics (MFPS XXVII), volume 276 of Elect. Notes in Theor. Comput. Sci. Elsevier, 2011.Google ScholarGoogle Scholar
  25. P. W. O'Hearn. Resources, concurrency and local reasoning. Theoretical Comput. Sci., 375 (1--3): 271--307, May 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. P. W. O'Hearn. Linear logic and interference control. In Category Theory and Computer Science, volume 350 of LNCS, pages 74--93. Springer-Verlag, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. P. W. O'Hearn and D. J. Pym. The logic of bunched implications. Bulletin Symbolic Logic, 5 (2): 215--244, June 1999.Google ScholarGoogle ScholarCross RefCross Ref
  28. P. W. O'Hearn and R. D. Tennent. Algol-like Languages (Two volumes). Birkhauser, Boston, 1997.Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. P. W. O'Hearn, A. J. Power, M. Takeyama, and R. D. Tennent. Syntactic control of interference revisited. In S. D. Brookes, M. Main, A. Melton, and M. Mislove, editors, Math. Found. of Program. Semantics: Eleventh Ann. Conference, volume 1 of Elect. Notes in Theor. Comput. Sci. Elsevier, 1995. (Reprinted as Chapter 18 of OT).Google ScholarGoogle Scholar
  30. P. W. O'Hearn, J. C. Reynolds, and H. Yang. Local reasoning about programs that alter data structures. In L. Fribourg, editor, CSL 2001, volume 2142 of LNCS, pages 1--19, Berlin, 2001. Springer-Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. S. Owicki and D. Gries. Verifying properties of parallel programs: An axiomatic approach. Comm. ACM, 19 (5): 279--285, May 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. M. Parkinson, R. Bornat, and Calcagno. Variables as resource in Hoare Logics. In Symp. on Logic in Comput. Sci., pages 137--146. IEEE, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. U. S. Reddy. Global state considered unnecessary: An introduction to object-based semantics. J. Lisp and Symbolic Computation, 9: 7--76, 1996. (Reprinted as Chapter 19 of OT).Google ScholarGoogle ScholarCross RefCross Ref
  34. J. Reynolds. Separation Logic: A logic for shared mutable data structures. In LICS, pages 55--74, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. J. C. Reynolds. A problematic program (joint work with Josh Berdine). Presentation at the Dagstuhl workshop on Types, Logics and Semantics for State, 2008.Google ScholarGoogle Scholar
  36. J. C. Reynolds. Syntactic control of interference. In ACM Symp. on Princ. of Program. Lang., pages 39--46. ACM, 1978. (Reprinted as Chapter 10 of OT). Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. J. C. Reynolds. Idealized Algol and its specification logic. In D. Neel, editor, Tools and Notions for Program Construction, pages 121--161. Cambridge Univ. Press, 1982. (Reprinted as Chapter 6 of OT).Google ScholarGoogle Scholar
  38. V. Vafeiadis. Concurrent Separation Logic and operational semantics. In MFPS 2011.Google ScholarGoogle Scholar
  39. H. Yang and P. W. O'Hearn. A semantics basis for local reasoning. In FOSSACS, pages 402--416, Berlin, 2002. Springer-Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. H. Yasuoka and T. Terauchi. Polymorphic fractional capabilities. In Static Analysis Symposium/Workshop on Static Analysis, pages 36--51, 2009. 10.1007/978--3--642-03237-0_5. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Syntactic control of interference for separation logic

        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

        Full Access

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!