Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Immutable specifications for more concise and precise verification

Published: 22 October 2011 Publication History

Abstract

In the current work, we investigate the benefits of immutability guarantees for allowing more flexible handling of aliasing, as well as more precise and concise specifications. Our approach supports finer levels of control that can mark data structures as being immutable through the use of immutability annotations. By using such annotations to encode immutability guarantees, we expect to obtain better specifications that can more accurately describe the intentions, as well as prohibitions, of the method. Ultimately, our goal is improving the precision of the verification process, as well as making the specifications more readable, more precise and as an enforceable program documentation. We have designed and implemented a new entailment procedure to formally and automatically reason about immutability enhanced specifications. We have also formalised the soundness for our new procedure through an operational semantics with mutability assertions on the heap. Lastly, we have carried out a set of experiments to both validate and affirm the utility of our current proposal on immutability enhanced specification mechanism.

References

[1]
J. Berdine, C. Calcagno, and P. W. O'Hearn. Smallfoot: Modular automatic assertion checking with separation logic. In 4th International Symposium on Formal Methods for Components and Objects (FMCO05), volume 4111 of Springer LNCS, 2006.
[2]
Adrian Birka and Michael D. Ernst. A practical type system and language for reference immutability. In John M. Vlissides and Douglas C. Schmidt, editors, OOPSLA, pages 35--49. ACM, 2004.
[3]
Richard Bornat, Cristiano Calcagno, Peter W. O'Hearn, and Matthew J. Parkinson. Permission accounting in separation logic. In POPL, pages 259--270, 2005.
[4]
Cristina David and Wei-Ngan Chin. Immutable specifications for more concise and precise verification. Technical report, National University of Singapore, 2011. avail. at http://www.comp.nus.edu.sg/~davidcri/reports/imm_tech.pdf.
[5]
Dino Distefano and Matthew J. Parkinson. jstar: towards practical verification for java. In OOPSLA, pages 213--226, 2008.
[6]
Robert Dockins, Aquinas Hobor, and Andrew W. Appel. A fresh look at separation algebras and share accounting. In APLAS, pages 161--177, 2009.
[7]
A. Gotsman, J. Berdine, and B. Cook. Interprocedural Shape Analysis with Separated Heap Abstractions. In SAS, Springer LNCS, Seoul, Korea, August 2006.
[8]
Christian Haack, Erik Poll, Jan Schafer, and Aleksy Schubert. Immutable objects for a java-like language. In ESOP, pages 347--362, 2007.
[9]
S. Ishtiaq and P. W. O'Hearn. BI as an Assertion Language for Mutable Data Structures. In ACM POPL, London, January 2001.
[10]
Nils Klarlund and Anders Møller. Mona version 1.4 - user manual.
[11]
H. H. Nguyen, C. David, S.C. Qin, and W.N. Chin. Automated Verification of Shape And Size Properties via Separation Logic. In Intl Conf. on Verification, Model Checking and Abstract Interpretation, Nice, France, January 2007.
[12]
Tobias Nipkow, Lawrence C. Paulson, and Markus Wenzel. Isabelle/HOL -- A Proof Assistant for Higher-Order Logic, volume 2283 of LNCS. Springer, 2002.
[13]
M. J. Parkinson. Local Reasoning for Java. PhD thesis, Computer Laboratory, University of Cambridge, 2005. UCAM-CL-TR-654.
[14]
W. Pugh. The Omega Test: A fast practical integer programming algorithm for dependence analysis. Communications of the ACM, 8:102--114, 1992.
[15]
Jaime Quinonez, Matthew S. Tschantz, and Michael D. Ernst. Inference of reference immutability. In ECOOP, pages 616--641, 2008.
[16]
J. Reynolds. Separation Logic: A Logic for Shared Mutable Data Structures. In IEEE Logic in Computer Science, Copenhagen, Denmark, July 2002.
[17]
J. Reynolds. Separation Logic: A Logic for Shared Mutable Data Structures. In IEEE Logic in Computer Science, Copenhagen, Denmark, July 2002.
[18]
Alexandru Salcianu and Martin C. Rinard. Purity and side effect analysis for java programs. In VMCAI, pages 199--215, 2005.
[19]
Yoav Zibin, Alex Potanin, Mahmood Ali, Shay Artzi, Adam Kiezun, and Michael D. Ernst. Object and reference immutability using java generics. In Ivica Crnkovic and Antonia Bertolino, editors, ESEC/SIGSOFT FSE, pages 75--84. ACM, 2007.
[20]
Yoav Zibin, Alex Potanin, Paley Li, Mahmood Ali, and Michael D. Ernst. Ownership and immutability in generic java. In William R. Cook, Siobhán Clarke, and Martin C. Rinard, editors, OOPSLA, pages 598--617. ACM, 2010.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 46, Issue 10
OOPSLA '11
October 2011
1063 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/2076021
Issue’s Table of Contents
  • cover image ACM Conferences
    OOPSLA '11: Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
    October 2011
    1104 pages
    ISBN:9781450309400
    DOI:10.1145/2048066
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 22 October 2011
Published in SIGPLAN Volume 46, Issue 10

Check for updates

Author Tags

  1. immutability annotations
  2. separation logic

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)8
  • Downloads (Last 6 weeks)0
Reflects downloads up to 08 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2021)A relational shape abstract domainFormal Methods in System Design10.1007/s10703-021-00366-4Online publication date: 24-Apr-2021
  • (2020)Concise Read-Only Specifications for Better Synthesis of Programs with PointersProgramming Languages and Systems10.1007/978-3-030-44914-8_6(141-168)Online publication date: 18-Apr-2020
  • (2015)Specifying Compatible Sharing in Data StructuresFormal Methods and Software Engineering10.1007/978-3-319-25423-4_23(349-365)Online publication date: 1-Dec-2015
  • (2024)Staged Specification Logic for Verifying Higher-Order Imperative ProgramsFormal Methods10.1007/978-3-031-71162-6_26(501-518)Online publication date: 11-Sep-2024
  • (2021)A relational shape abstract domainFormal Methods in System Design10.1007/s10703-021-00366-4Online publication date: 24-Apr-2021
  • (2015)Verification of protocol specifications with Separation Logic2015 IEEE International Conference on Intelligent Computer Communication and Processing (ICCP)10.1109/ICCP.2015.7312614(109-116)Online publication date: Sep-2015
  • (2015)Specifying Compatible Sharing in Data StructuresFormal Methods and Software Engineering10.1007/978-3-319-25423-4_23(349-365)Online publication date: 1-Dec-2015
  • (2014)Parametric completeness for separation theoriesACM SIGPLAN Notices10.1145/2578855.253584449:1(453-464)Online publication date: 8-Jan-2014
  • (2014)HIPimmProceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation10.1145/2543728.2543743(189-193)Online publication date: 11-Jan-2014
  • (2014)Parametric completeness for separation theoriesProceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages10.1145/2535838.2535844(453-464)Online publication date: 11-Jan-2014

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media