Fractional Permissions

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."

[1]  David Gries,et al.  Programming Concepts and Methods , 1998 .

[2]  Viktor Vafeiadis Concurrent Separation Logic and Operational Semantics , 2011, MFPS.

[3]  John Tang Boyland Semantics of fractional permissions with nesting , 2010, TOPL.

[4]  Peter Müller,et al.  Modular Specification and Verification of Object-Oriented Programs , 2002, Lecture Notes in Computer Science.

[5]  Jonathan Aldrich,et al.  Modular typestate checking of aliased objects , 2007, OOPSLA.

[6]  John Boyland,et al.  Implementing permission analysis , 2009 .

[7]  Peter W. O'Hearn,et al.  Permission accounting in separation logic , 2005, POPL '05.

[8]  Alexey Gotsman,et al.  Precision and the Conjunction Rule in Concurrent Separation Logic , 2011, MFPS.

[9]  Robert DeLine,et al.  Adoption and focus: practical linear types for imperative programming , 2002, PLDI '02.

[10]  Peter W. O'Hearn,et al.  Syntactic Control of Interference Revisited , 1999, Theor. Comput. Sci..

[11]  Matthew J. Parkinson,et al.  Local reasoning for Java , 2005 .

[12]  Sophia Drossopoulou,et al.  Aliasing, Confinement, and Ownership in Object-Oriented Programming , 2007, ECOOP Workshops.

[13]  David Walker,et al.  Typed memory management via static capabilities , 2000, TOPL.

[14]  Jonathan Aldrich,et al.  Modular Typestate Verification of Aliased Objects , 2007 .

[15]  John Tang Boyland,et al.  Checking Interference with Fractional Permissions , 2003, SAS.

[16]  Gavin M. Bierman,et al.  Separation Logic for Object-Oriented Programming , 2013, Aliasing in Object-Oriented Programming.

[17]  Gary T. Leavens,et al.  Safely creating correct subclasses without seeing superclass code , 2000, OOPSLA.

[18]  Alexey Gotsman,et al.  Local Reasoning for Storable Locks and Threads , 2007, APLAS.

[19]  John Tang Boyland,et al.  Alias burying: Unique variables without destructive reads , 2001, Softw. Pract. Exp..

[20]  Alexander Aiken,et al.  A capability calculus for concurrency and determinism , 2006, TOPL.

[21]  John Tang Boyland,et al.  Why we should not add readonly to Java (yet) , 2006, J. Object Technol..

[22]  Andrew W. Appel,et al.  A Fresh Look at Separation Algebras and Share Accounting , 2009, APLAS.

[23]  John C. Reynolds,et al.  Syntactic control of interference , 1978, POPL.

[24]  Peter W. O'Hearn,et al.  Separation and information hiding , 2004, POPL.

[25]  Brian Campbell,et al.  Amortised Memory Analysis Using the Depth of Data Structures , 2009, ESOP.

[26]  Clément Hurlin,et al.  Specification and Verification of Multithreaded Object-Oriented Programs with Separation Logic , 2009 .

[27]  Stephen D. Brookes,et al.  Variables as Resource for Shared-Memory Programs: Semantics and Soundness , 2006, MFPS.

[28]  Xinyu Feng,et al.  Deny-Guarantee Reasoning , 2009, ESOP.

[29]  Philip Wadler,et al.  Linear Types can Change the World! , 1990, Programming Concepts and Methods.

[30]  K. Rustan M. Leino,et al.  A Basis for Verifying Multi-threaded Programs , 2009, ESOP.

[31]  Aaron Turon,et al.  A Resource Analysis of the π-calculus , 2011, MFPS.