Abstract
Fractional 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 different fractional models including those for which fractional scaling is required. We describe a particular system of fractional permissions that uses scaling to support the technique of “nesting.”
Work supported in part by the National Science Foundation (CCF-0702635). The opinions expressed here are not necessarily those of the National Science Foundation or the US Government.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Boyland, J.: Checking Interference with Fractional Permissions. In: Cousot, R. (ed.) SAS 2003. LNCS, vol. 2694, pp. 55–72. Springer, Heidelberg (2003)
Bornat, R., Calcagno, C., O’Hearn, P., Parkinson, M.: Permission accounting in separation logic. In: Conference Record of POPL 2005: the 32nd ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, pp. 259–270. ACM Press, New York (2005)
Brookes, S.: Variables as resource for shared-memory programs: Semantics and soundness. In: Twenty-Second Conference on the Mathematical Foundations of Programming Semantics, pp. 123–150. North-Holland, Elsevier (2006)
Bierhoff, K., Aldrich, J.: Modular typestate verification of aliased objects. Technical Report CMUISRI-07-105, School of Computer Science, Carnegie Mellon University (2007)
Terauchi, T., Aiken, A.: A capability calculus for concurrency and determinism. ACM Transactions on Programming Languages and Systems 30(5), 1–30 (2008)
Turon, A., Wand, M.: A resource analysis of the π-calculus. In: Twenty-Seventh Conference on the Mathematical Foundations of Programming Semantics (2011)
Dodds, M., Feng, X., Parkinson, M., Vafeiadis, V.: Deny-Guarantee Reasoning. In: Castagna, G. (ed.) ESOP 2009. LNCS, vol. 5502, pp. 363–377. Springer, Heidelberg (2009)
Hurlin, C.: Specification and Verification of Multithreaded Object-Oriented Programs with Separation Logic. PhD thesis, Université Nice—Sophia Antipolis (September 2009)
Leino, K.R.M., Müller, P.: A Basis for Verifying Multi-threaded Programs. In: Castagna, G. (ed.) ESOP 2009. LNCS, vol. 5502, pp. 378–393. Springer, Heidelberg (2009)
O’Hearn, P.W., Takeyama, M., Power, A.J., Tennent, R.D.: Syntactic control of interference revisited. In: Eleventh Conference on the Mathematical Foundations of Programming Semantics, vol. 1. North-Holland, Elsevier (1995)
Walker, D., Crary, K., Morrisett, G.: Typed memory management via static capabilities. ACM Transactions on Programming Languages and Systems 22(4), 701–771 (2000)
Wadler, P.: Linear types can change the world! In: Broy, M., Jones, C.B. (eds.) Programming Concepts and Methods. Elsevier, North-Holland (1990)
Dockins, R., Hobor, A., Appel, A.W.: A Fresh Look at Separation Algebras and Share Accounting. In: Hu, Z. (ed.) APLAS 2009. LNCS, vol. 5904, pp. 161–177. Springer, Heidelberg (2009)
Parkinson, M.J.: Local reasoning for Java. PhD thesis, University of Cambridge (November 2005)
Bierhoff, K., Aldrich, J.: Modular typestate verification of aliased objects. In: OOPSLA 2007 Conference Proceedings—Object-Oriented Programming Systems, Languages and Applications, pp. 301–320. ACM Press, New York (2007), Companion technical report: http://reports-archive.adm.cs.cmu.edu/anon/isri2007/CMUISRI-07-105.pdf
O’Hearn, P.W., Yang, H., Reynolds, J.C.: Separation and information hiding. In: Conference Record of POPL 2004: the 31st ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, pp. 268–280. ACM Press, New York (2004)
Boyland, J.: Semantics of fractional permissions with nesting. ACM Transactions on Programming Languages and Systems 32(6), Article 22 (August 2010)
Fähndrich, M., DeLine, R.: Adoption and focus: Practical linear types for imperative programming. In: Proceedings of the ACM SIGPLAN 2002 Conference on Programming Language Design and Implementation, pp. 13–24. ACM Press, New York (2002)
Boyland, J.: The non-linearity of volatile in Java. In: Wrigstad, T. (ed.) International Workshop on Aliasing, Confinement and Ownership in object-oriented programming, IWACO (2007)
Müller, P.: Modular Specification and Verification of Object-Oriented Programs. PhD thesis, Fernuniversität Hagen (2001)
Ruby, C., Leavens, G.T.: Safely creating correct subclasses without seeing superclass code. In: OOPSLA 2000 Conference Proceedings—Object-Oriented Programming Systems, Languages and Applications, pp. 208–228. ACM Press, New York (2000)
Boyland, J.: Why we should not add readonly to Java, yet. In: 7th ECOOP Workshop on Formal Techniques for Java-like Programs (2005)
Wrigstad, T.: External Uniqueness: A Theory of Aggregate Uniqueness for Object-Oriented Programming. PhD thesis, Stockholm University (2004)
Boyland, J.: Alias burying: Unique variables without destructive reads. Software Practice and Experience 31(6), 533–553 (2001)
Parkinson, M., Bierman, G.: Separation Logic for Object-Oriented Programming. In: Clarke, D., Noble, J., Wrigstad, T. (eds.) Aliasing in Object-Oriented Programming. LNCS, vol. 7850, pp. 366–406. Springer, Heidelberg (2013)
Gotsman, A., Berdine, J., Cook, B., Rinetzky, N., Sagiv, M.: Local Reasoning for Storable Locks and Threads. In: Shao, Z. (ed.) APLAS 2007. LNCS, vol. 4807, pp. 19–37. Springer, Heidelberg (2007)
Gotsman, A., Berdine, J., Cook, B.: Precision and the conjunction rule in concurrent separation logic. Electronic Notes in Theoretical Computer Science 276, 171–190 (2011); Presented at Twenty-seventh Conference on the Mathematical Foundations of Programming Semantics
Vafeiadis, V.: Concurrent separation logic and operational semantics. Electronic Notes in Theoretical Computer Science 276, 335–351 (2011); Presented at Twenty-seventh Conference on the Mathematical Foundations of Programming Semantics
Retert, W.S.: Implementing Permission Analysis. PhD thesis, University of Wisconsin–Milwaukee, Department of EE & CS (2009)
Boyland, J., Sun, C.: Proving the correctness of fractional permissions for a Java-like kernel language. In: Zucca, E. (ed.) Informal Proceedings of 18th International Workshop on Foundations of Object-Oriented Languages, FOOL 2011 (October 2011)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Boyland, J. (2013). Fractional Permissions. In: Clarke, D., Noble, J., Wrigstad, T. (eds) Aliasing in Object-Oriented Programming. Types, Analysis and Verification. Lecture Notes in Computer Science, vol 7850. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-36946-9_10
Download citation
DOI: https://doi.org/10.1007/978-3-642-36946-9_10
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-36945-2
Online ISBN: 978-3-642-36946-9
eBook Packages: Computer ScienceComputer Science (R0)