Nothing Special   »   [go: up one dir, main page]

skip to main content
research-article

Syntactic control of interference for separation logic

Published: 25 January 2012 Publication History

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.

Supplementary Material

JPG File (popl_5a_3.jpg)
ZIP File (popl233.zip)
The file popl233-reddy-supplemental.pdf contains the technical appendix for the paper "Syntactic Control of Interference for Separation Logic" by Uday S. Reddy and John C. Reynolds.
MP4 File (popl_5a_3.mp4)

References

[1]
S. Abramsky and G. McCusker. Linearity, sharing and state. In Algol-like Languages tOT, chapter 20.
[2]
S. Abramsky, K. Honda, and G. McCusker. A fully abstract game semantics for general references. In LICS 1998, pages 334--344, 1998.
[3]
K. R. Apt. Ten years of Hoare's logic: A survey. ACM Trans. Program. Lang. Syst., 3 (4): 431--483, Oct. 1981.
[4]
J. Berdine and I. Wehrman. Variable conditions and CSL. Private communication, 4th April, 2011.
[5]
K. Bierhoff. API protocol compliance in object-oriented software. Technical Report Carnegie Mellon University-ISR-09--108, Carnegie-Mellon University, Apr 2009.
[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.
[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.
[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.
[9]
973)}Brinch-Hansen-monitorsP. Brinch Hansen. Operating System Principles. Prentice-Hall, Englewood Cliffs, 1973.
[10]
P. Brinch Hansen. Structured multiprogramming. Comm. ACM, 15: 574--577, July 1972.
[11]
S. D. Brookes. A semantics for Concurrent Separation Logic. Theoretical Comput. Sci., 375 (1--3): 227--270, Apr 2007.
[12]
S. D. Brookes. A revisionist history of Concurrent Separation Logic. In MFPS 2011, pages 5--28.
[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.
[14]
L. Damas and R. Milner. Principal type-schemes for functional programs. In ACM Symp. on Princ. of Program. Lang., pages 207--212, 1982.
[15]
J.-Y. Girard. Linear logic. Theoretical Comput. Sci., 50: 1--102, 1987.
[16]
A. Gotsman, J. Berdine, and B. Cook. Precision and the conjunction rule in Concurrent Separation Logic. In MFPS 2011.
[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.
[18]
C. A. R. Hoare. Monitors: An operating system structuring concept. Comm. ACM, 17 (10): 549--558, Oct. 1974.
[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.
[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.
[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.
[22]
G. McCusker. A graph model for imperative computation. Logical Methods in Comp. Sci., 6 (1--2), Jan 2010.
[23]
R. Milner. A theory of type polymorphism in programming. J. Comput. Syst. Sci., 17: 348--375, 1978.
[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.
[25]
P. W. O'Hearn. Resources, concurrency and local reasoning. Theoretical Comput. Sci., 375 (1--3): 271--307, May 2007.
[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.
[27]
P. W. O'Hearn and D. J. Pym. The logic of bunched implications. Bulletin Symbolic Logic, 5 (2): 215--244, June 1999.
[28]
P. W. O'Hearn and R. D. Tennent. Algol-like Languages (Two volumes). Birkhauser, Boston, 1997.
[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).
[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.
[31]
S. Owicki and D. Gries. Verifying properties of parallel programs: An axiomatic approach. Comm. ACM, 19 (5): 279--285, May 1976.
[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.
[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).
[34]
J. Reynolds. Separation Logic: A logic for shared mutable data structures. In LICS, pages 55--74, 2002.
[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.
[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).
[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).
[38]
V. Vafeiadis. Concurrent Separation Logic and operational semantics. In MFPS 2011.
[39]
H. Yang and P. W. O'Hearn. A semantics basis for local reasoning. In FOSSACS, pages 402--416, Berlin, 2002. Springer-Verlag.
[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.

Cited By

View all

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 47, Issue 1
POPL '12
January 2012
569 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/2103621
Issue’s Table of Contents
  • cover image ACM Conferences
    POPL '12: Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
    January 2012
    602 pages
    ISBN:9781450310833
    DOI:10.1145/2103656
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: 25 January 2012
Published in SIGPLAN Volume 47, Issue 1

Check for updates

Author Tags

  1. conditional critical regions
  2. fractional permissions
  3. separation logic
  4. static analysis
  5. syntactic control of interference

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)10
  • Downloads (Last 6 weeks)3
Reflects downloads up to 08 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2015)Boosting the Software Quality of Parallel Programming Using Logical MeansComputational Science and Its Applications -- ICCSA 201510.1007/978-3-319-21413-9_8(101-116)Online publication date: 19-Jun-2015
  • (2014)All-Path Reachability LogicRewriting and Typed Lambda Calculi10.1007/978-3-319-08918-8_29(425-440)Online publication date: 2014
  • (2014)Modular Reasoning for Message-Passing ProgramsTheoretical Aspects of Computing – ICTAC 201410.1007/978-3-319-10882-7_17(277-294)Online publication date: 2014
  • (2013)Subjective auxiliary state for coarse-grained concurrencyACM SIGPLAN Notices10.1145/2480359.242913448:1(561-574)Online publication date: 23-Jan-2013
  • (2013)Subjective auxiliary state for coarse-grained concurrencyProceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages10.1145/2429069.2429134(561-574)Online publication date: 23-Jan-2013
  • (2012)Uniqueness and reference immutability for safe parallelismACM SIGPLAN Notices10.1145/2398857.238461947:10(21-40)Online publication date: 19-Oct-2012
  • (2012)Uniqueness and reference immutability for safe parallelismProceedings of the ACM international conference on Object oriented programming systems languages and applications10.1145/2384616.2384619(21-40)Online publication date: 19-Oct-2012
  • (2012)Syntactic Control of Interference and Concurrent Separation LogicElectronic Notes in Theoretical Computer Science (ENTCS)10.1016/j.entcs.2012.08.007286(87-102)Online publication date: 1-Sep-2012
  • (2012)Variable permissions for concurrency verificationProceedings of the 14th international conference on Formal Engineering Methods: formal methods and software engineering10.1007/978-3-642-34281-3_4(5-21)Online publication date: 12-Nov-2012

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media