skip to main content
research-article

Immutable specifications for more concise and precise verification

Published:22 October 2011Publication History
Skip Abstract Section

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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Richard Bornat, Cristiano Calcagno, Peter W. O'Hearn, and Matthew J. Parkinson. Permission accounting in separation logic. In POPL, pages 259--270, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  5. Dino Distefano and Matthew J. Parkinson. jstar: towards practical verification for java. In OOPSLA, pages 213--226, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Robert Dockins, Aquinas Hobor, and Andrew W. Appel. A fresh look at separation algebras and share accounting. In APLAS, pages 161--177, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. A. Gotsman, J. Berdine, and B. Cook. Interprocedural Shape Analysis with Separated Heap Abstractions. In SAS, Springer LNCS, Seoul, Korea, August 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Christian Haack, Erik Poll, Jan Schafer, and Aleksy Schubert. Immutable objects for a java-like language. In ESOP, pages 347--362, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. S. Ishtiaq and P. W. O'Hearn. BI as an Assertion Language for Mutable Data Structures. In ACM POPL, London, January 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Nils Klarlund and Anders Møller. Mona version 1.4 - user manual.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Tobias Nipkow, Lawrence C. Paulson, and Markus Wenzel. Isabelle/HOL -- A Proof Assistant for Higher-Order Logic, volume 2283 of LNCS. Springer, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. M. J. Parkinson. Local Reasoning for Java. PhD thesis, Computer Laboratory, University of Cambridge, 2005. UCAM-CL-TR-654.Google ScholarGoogle Scholar
  14. W. Pugh. The Omega Test: A fast practical integer programming algorithm for dependence analysis. Communications of the ACM, 8:102--114, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Jaime Quinonez, Matthew S. Tschantz, and Michael D. Ernst. Inference of reference immutability. In ECOOP, pages 616--641, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. J. Reynolds. Separation Logic: A Logic for Shared Mutable Data Structures. In IEEE Logic in Computer Science, Copenhagen, Denmark, July 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. J. Reynolds. Separation Logic: A Logic for Shared Mutable Data Structures. In IEEE Logic in Computer Science, Copenhagen, Denmark, July 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Alexandru Salcianu and Martin C. Rinard. Purity and side effect analysis for java programs. In VMCAI, pages 199--215, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Immutable specifications for more concise and precise verification

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • 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

          Copyright © 2011 ACM

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 22 October 2011

          Check for updates

          Qualifiers

          • research-article

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!