Flexible Immutability with Frozen Objects

作者: K. Rustan M. Leino , Peter Müller , Angela Wallenburg

DOI: 10.1007/978-3-540-87873-5_17

关键词:

摘要: Object immutability is a familiar concept that allows safe sharing of objects. Existing language support for based on immutable classes. However, class-based approaches are restrictive because programmers can neither make instances arbitrary classes immutable, nor they control when an instance becomes immutable. These restrictions prevent many interesting applications where objects mutable go through number modifications before become immutable. This paper presents flexible technique to enforce the individual by transferring their ownership special freezer object, which prevents further modification. The demonstrates how facilitates program verification extending Boogie methodology object invariants Spec#'s dynamic ownership, but concepts also apply other systems transfer.

参考文章(31)
Martin C. Rinard, Chandrasekhar Boyapati, Safejava: a unified type system for safe programming Massachusetts Institute of Technology. ,(2004)
Mike Barnett, David A. Naumann, Friends Need a Bit More: Maintaining Invariants Over Shared State mathematics of program construction. pp. 54- 84 ,(2004) , 10.1007/978-3-540-27764-4_5
John Potter, Jingling Xue, Yi Lu, Validity invariants and effects european conference on object-oriented programming. pp. 202- 226 ,(2007) , 10.5555/2394758.2394775
K. Rustan M. Leino, Peter Müller, Verification of equivalent-results methods european symposium on programming. pp. 307- 321 ,(2008) , 10.1007/978-3-540-78739-6_24
K. Rustan M. Leino, Peter Müller, Object Invariants in Dynamic Contexts european conference on object-oriented programming. ,vol. 3086, pp. 491- 515 ,(2004) , 10.1007/978-3-540-24851-4_22
Ádám Darvas, K. Rustan M. Leino, Practical Reasoning About Invocations and Implementations of Pure Methods Fundamental Approaches to Software Engineering. pp. 336- 351 ,(2007) , 10.1007/978-3-540-71289-3_26
John Boyland, Checking interference with fractional permissions static analysis symposium. pp. 55- 72 ,(2003) , 10.5555/1760267.1760273
Peter Müller, Arsenii Rudich, Ownership transfer in universe types conference on object-oriented programming systems, languages, and applications. ,vol. 42, pp. 461- 478 ,(2007) , 10.1145/1297027.1297061
Adam Darvas, Peter Müller, Reasoning About Method Calls in Interface Specifications The Journal of Object Technology. ,vol. 5, pp. 59- 85 ,(2006) , 10.5381/JOT.2006.5.5.A3
Richard Bornat, Cristiano Calcagno, Peter O'Hearn, Matthew Parkinson, Permission accounting in separation logic symposium on principles of programming languages. ,vol. 40, pp. 259- 270 ,(2005) , 10.1145/1040305.1040327