skip to main content
research-article
Free Access

Semantics of fractional permissions with nesting

Published:13 August 2010Publication History
Skip Abstract Section

Abstract

Permissions specify mutable state that can be accessed by a program. Fractions distinguish write access (1) from read access (any smaller fraction). Nesting can model object invariants and ownership. Fractional permissions provides a foundation the meaning of many of access-based annotations: uniqueness, read-only, immutability, method effects, guarded state, etc. The semantics of fractional permissions with nesting is given in terms of “fractional heaps.” We show that the fraction law Π ≡ 1/2 Π + 1/2 Π permits sound reasoning and that nesting can be carried out safely using only local reasoning.

References

  1. Aldrich, J. and Chambers, C. 2004. Ownership domains: Separating aliasing policy from mechanism. In Proceedings of the 18th European Conference on Object-Oriented Programming (ECOOP'04). M. Odersky, Ed. Lecture Notes in Computer Science, vol. 3086. Springer, 1--25.Google ScholarGoogle Scholar
  2. Berdine, J., Calcagno, C., and O' Hearn, P. W. 2004. A decidable fragment of separation logic. In Proceedings of the 24th International Conference on Foundations of Software Technology and Theoretical Computer Science. K. Lodaya and M. Mahajan, Eds. Lecture Notes in Computer Science, vol. 3328. Springer, 97--109. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Bierhoff, K. and Aldrich, J. 2007a. Modular typestate verification of aliased objects. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA'07). ACM SIGPLAN Not. 42, 10, 301--320. Companion Tech. rep. http://reportsarchive.adm.cs.cmu.edu/anon/isri2007/CMUISRI-07-105.pdf. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Bierhoff, K. and Aldrich, J. 2007b. Modular typestate verification of aliased objects. Tech. rep. CMU-ISRI-07-105, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA.Google ScholarGoogle Scholar
  5. Bornat, R., Calcagno, C., O' Hearn, P., and Parkinson, M. 2005. Permission accounting in separation logic. In Proceedings of the 32nd ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (POPL'05). ACM Press, New York, 259--270. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Boyland, J. 2003. Checking interference with fractional permissions. In Proceedings of the 10th International Symposium on Static Analysis. R. Cousot, Ed. Lecture Notes in Computer Science, vol. 2694. Springer, 55--72. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Boyland, J. 2005. Why we should not add readonly to Java, yet. In Proceedings of the 7th ECOOP Workshop on Formal Techniques for Java-like Programs.Google ScholarGoogle Scholar
  8. Boyland, J., Noble, J., and Retert, W. 2001. Capabilities for sharing: A generalization of uniqueness and read-only. In Proceedings of the 15th European Conference on Object-Oriented Programming (ECOOP'01). J. L. Knudsen, Ed. Lecture Notes in Computer Science, vol. 2072. Springer, 2--27. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Boyland, J. and Retert, W. 2005. Connecting effects and uniqueness with adoption. In Proceedings of the 32nd ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (POPL'05). ACM Press, New York, 283--295. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Boyland, J., Retert, W., and Zhao, Y. 2007. Iterators can be independent “from” their collections. In Proceedings of the International Workshop on Aliasing Confinement and Ownership (IWACO '07).Google ScholarGoogle Scholar
  11. Boyland, J., Retert, W., and Zhao, Y. 2009. Comprehending annotations on object - oriented programs using fractional permissions. In Proceedings of the International Workshop on Aliasing, Confinement and Ownership in Object-Oriented Programming (IWACO'09). M. Parkinson, Ed. ACM Press, New York. To appear. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Brookes, S. 2007. A semantics for concurrent separation logic. Theor. Comput. Sci. 375, 1--3, 227--270. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Clarke, D. 2001. Object ownership and containment. Ph.D. thesis, University of New South Wales, Sydney, Australia. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Clarke, D. and Drossopoulou, S. 2002. Ownership, encapsulation and the disjointness of type and effect. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA'02). ACM SIGPLAN Not. 37, 11, 292--310. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Clarke, D. and Wrigstad, T. 2003. External uniqueness is unique enough. In Proceedings of the 17th European Conference on Object-Oriented Programming (ECOOP'03). L. Cardelli, Ed. Lecture Notes in Computer Science, vol. 2743. Springer, 176--200.Google ScholarGoogle Scholar
  16. Fähndrich, M. and Deline, R. 2002. Adoption and focus: Practical linear types for imperative programming. In Proceedings of the ACM SIGPLAN '02 Conference on Programming Language Design and Implementation. ACM SIGPLAN Not. 37, 13--24. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Fähndrich, M. and Leino, K. R. M. 2003. Declaring and checking non-null types in an object - oriented language. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA'03). ACM SIGPLAN Not. 38, 11, 302--312. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Flanagan, C. and Freund, S. N. 2000. Type-Based race detection for Java. In Proceedings of the ACM SIGPLAN '00 Conference on Programming Language Design and Implementation. ACM SIGPLAN Not. 35, 5, 219--232. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Greenhouse, A. and Boyland, J. 1999. An object-oriented effects system. In Proceedings of the 13th European Conference on Object-Oriented Programming (ECOOP'99). R. Guerraoui, Ed. Lecture Notes in Computer Science, vol. 1628. Springer, 205--229. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Ishtiaq, S. S. and O' Hearn, P. W. 2001. Bias an assertion language for mutable data structures. In Proceedings of the 28th Annual ACM SIGACT/SIGPLAN Symposium on Principles of Programming Languages. ACM Press, New York, 14--26. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Krishnaswami, N. R. 2006. Reasoning about iterators with separation logic. In Proceedings of the Conference on Specification and Verification of Component-Based Systems (SAVCBS '06). ACM Press, New York, 83--86. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Leino, K. R. M., Poetzsch-Heffter, A., and Zhou, Y. 2002. Using data groups to specify and check side effects. In Proceedings of the ACM SIGPLAN '02 Conference on Programming Language Design and Implementation. ACM SIGPLAN Not. 37, 246--257. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Müller, P. and Poetzsch-Heffter, A. 2000. A type system for controlling representation exposure in Java. In Proceedings of the 2nd ECOOP Workshop on Formal Techniques for Java Programs, S. Drossopolou, S. Eisenbach, B. Jacobs, G. T. Leavens, P. Müller, and A. Poetzsch-Heffter, Eds.Google ScholarGoogle Scholar
  24. Müller, P. and Rudich, A. 2007. Ownership transfer in universe types. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA'07). ACM SIGPLAN Not. 42, 10, 461--478. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. O' Hearn, P. and Pym, D. 1999. The logic of bunched implications. Bull. Symbol. Logic 5, 2, 215--244.Google ScholarGoogle ScholarCross RefCross Ref
  26. O' Hearn, P. W., Yang, H., and Reynolds, J. C. 2004. Separation and information hiding. In Proceedings of the 31st ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (POPL'04). ACM Press, New York, 268--280. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Retert, W. S. 2009. Implementing permission analysis. Ph.D. thesis, Department of Electrical Engineering and Computer Science. University of Wisconsin-Milwaukee. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Reynolds, J. 2002. Separation logic: A logic for shared mutable data structures. In Logic in Computer Science. IEEE Computer Society, Los Alamitos, CA, 55--74. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Zhao, Y. 2007. Concurrency analysis based on fractional permissions. Ph.D. thesis, Department of Electrical Engineering and Computer Science, University of Wisconsin-Milwaukee. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Semantics of fractional permissions with nesting

          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

          • Published in

            cover image ACM Transactions on Programming Languages and Systems
            ACM Transactions on Programming Languages and Systems  Volume 32, Issue 6
            August 2010
            215 pages
            ISSN:0164-0925
            EISSN:1558-4593
            DOI:10.1145/1749608
            Issue’s Table of Contents

            Copyright © 2010 ACM

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Accepted: 1 December 2010
            • Published: 13 August 2010
            • Revised: 1 August 2009
            • Received: 1 September 2008
            Published in toplas Volume 32, Issue 6

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article
            • Research
            • Refereed

          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!