Alternate annotation checkers using fractional permissions

Although existing annotation checker based on Fractional Permissions is powerful, it causes great space and runtime overhead. To address this issue, we propose to use a multi-layered approach for checking annotations. In addition to the heavyweight permission checker, we use two lightweight checkers: a conservative checker for those obviously correct cases, and a liberal checker for those obviously wrong cases. The type system for the conservative checker is more high-level, albeit less precise. To prove its soundness, we piggy-pack its proof to that of fractional permission, which is already proven sound. We also plan to implement both checkers on Fluid, an analysis framework for Java programs, and use various benchmarks to compare the performance of both approach.

[1]  Furio Honsell,et al.  A framework for defining logics , 1993, JACM.

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

[3]  Frank Pfenning,et al.  Twelf User''s Guide , 2002 .

[4]  K. Rustan M. Leino,et al.  Declaring and checking non-null types in an object-oriented language , 2003, OOPSLA 2003.

[5]  Craig Chambers,et al.  Ownership Domains: Separating Aliasing Policy from Mechanism , 2004, ECOOP.

[6]  John Tang Boyland,et al.  Connecting effects and uniqueness with adoption , 2005, POPL '05.

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

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

[9]  Jan Vitek,et al.  Confined types , 1999, OOPSLA '99.

[10]  Aaron Greenhouse,et al.  Using Eclipse to demonstrate positive static assurance of Java program concurrency design intent , 2003, eclipse '03.

[11]  James Noble,et al.  Ownership types for flexible alias protection , 1998, OOPSLA '98.

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

[13]  David Gerard Clarke,et al.  Object ownership and containment , 2003 .

[14]  Naftaly H. Minsky Towards Alias-Free Pointers , 1996, ECOOP.

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

[16]  K. Rustan M. Leino,et al.  Using data groups to specify and check side effects , 2002, PLDI '02.

[17]  Thomas Gross,et al.  A programmer-oriented approach to safe concurrency , 2003 .

[18]  Yang Zhao,et al.  Comprehending annotations on object-oriented programs using fractional permissions , 2009 .