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.
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- Brookes, S. 2007. A semantics for concurrent separation logic. Theor. Comput. Sci. 375, 1--3, 227--270. Google Scholar
Digital Library
- Clarke, D. 2001. Object ownership and containment. Ph.D. thesis, University of New South Wales, Sydney, Australia. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- O' Hearn, P. and Pym, D. 1999. The logic of bunched implications. Bull. Symbol. Logic 5, 2, 215--244.Google Scholar
Cross Ref
- 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 Scholar
Digital Library
- Retert, W. S. 2009. Implementing permission analysis. Ph.D. thesis, Department of Electrical Engineering and Computer Science. University of Wisconsin-Milwaukee. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- Zhao, Y. 2007. Concurrency analysis based on fractional permissions. Ph.D. thesis, Department of Electrical Engineering and Computer Science, University of Wisconsin-Milwaukee. Google Scholar
Digital Library
Index Terms
Semantics of fractional permissions with nesting
Recommendations
A flexible role-based delegation model using characteristics of permissions
DEXA'05: Proceedings of the 16th international conference on Database and Expert Systems ApplicationsRole-Based Access Control(RBAC) has recently received considerable attention as a promising alternative to traditional discretionary and mandatory access controls.[7] RBAC ensures that only authorized users are given access to protected data or ...
Fractional permissions without the fractions
FTfJP '11: Proceedings of the 13th Workshop on Formal Techniques for Java-Like ProgramsFractional permissions are a popular approach to reasoning about programs that use shared-memory concurrency. Abstractly, they provide a way of managing that either multiple readers or one writer thread can access a resource concurrently. Concretely, ...
Fractional permissions
Aliasing in Object-Oriented ProgrammingFractional permissions allow resource tracking type systems to give out multiple read accesses to the same resource without losing the ability to re-form a unique write access later. This paper describes the motivation for fractional permissions, and ...






Comments