skip to main content
abstract

Technology for inferring contracts from code

Published:10 November 2013Publication History
Skip Abstract Section

Abstract

Contracts are a simple yet very powerful form of specification. They consists of method preconditions and post-conditions, of object invariants, and of assertions and loop invariants. Ideally, the programmer will annotate all of her code with contracts which are mechanically checked by some static analysis tool. In practice, programmers only write few contracts, mainly preconditions and some object invariants. The reason for that is that other contracts are "clear from the code": Programmers do not like to repeat themselves. As a consequence, any usable static verification tool should provide some form of contract inference.

References

  1. M. Bouaziz, L. Logozzo, and M. Fähndrich. Inference of necessary field conditions with abstract interpretation. In APLAS, 2012.Google ScholarGoogle ScholarCross RefCross Ref
  2. P. Cousot and R. Cousot. Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In POPL'77. ACM Press, Jan. 1977. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. P. Cousot, R. Cousot, M. Fähndrich, and F. Logozzo. Automatic inference of necessary preconditions. In VMCAI, pages 128--148, 2013.Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. P. Cousot, R. Cousot, and F. Logozzo. Contract precondition inference from intermittent assertions on collections. In VMCAI'11, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. P. Cousot, R. Cousot, and F. Logozzo. A parametric segmentation functor for fully automatic and scalable array content analysis. In Proceeding of the 38th ACM Symposium on Principles of Programming Languages (POPL 2011). ACM Press, Jan. 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. V. Laviron and F. Logozzo. Subpolyhedra: A (more) scalable approach to infer linear inequalities. In VMCAI '09, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. F. Logozzo. Modular static analysis of object-oriented languages. Thèse de doctorat en informatique, École poly technique, 2004.Google ScholarGoogle Scholar
  8. F. Logozzo. Class invariants as abstract interpretation of trace semantics. Computer Languages, Systems & Structures, 35(2):100--142, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Technology for inferring contracts from code

    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 SIGAda Ada Letters
      ACM SIGAda Ada Letters  Volume 33, Issue 3
      HILT '13
      December 2013
      80 pages
      ISSN:1094-3641
      DOI:10.1145/2658982
      Issue’s Table of Contents
      • cover image ACM Conferences
        HILT '13: Proceedings of the 2013 ACM SIGAda annual conference on High integrity language technology
        November 2013
        100 pages
        ISBN:9781450324670
        DOI:10.1145/2527269

      Copyright © 2013 Owner/Author

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 10 November 2013

      Check for updates

      Qualifiers

      • abstract
    • Article Metrics

      • Downloads (Last 12 months)5
      • Downloads (Last 6 weeks)0

      Other Metrics

    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!