• DocumentCode
    1469540
  • Title

    Engineering a Sound Assertion Semantics for the Verifying Compiler

  • Author

    Chalin, Patrice

  • Author_Institution
    Comput. Sci. & Software Eng. Dept., Concordia Univ., Montreal, QC, Canada
  • Volume
    36
  • Issue
    2
  • fYear
    2010
  • Firstpage
    275
  • Lastpage
    287
  • Abstract
    The Verifying Compiler (VC) project is a core component of the Dependable Systems Evolution Grand Challenge. The VC offers the promise of automatically proving that a program or component is correct, where correctness is defined by program assertions. While several VC prototypes exist, all adopt a semantics for assertions that is unsound. This paper presents a consolidation of VC requirements analysis (RA) activities that, in particular, brought us to ask targeted VC customers what kind of semantics they wanted. Taking into account both practitioners´ needs and current technological factors, we offer recovery of soundness through an adjusted definition of assertion validity that matches user expectations and can be implemented practically using current prover technology. For decades, there have been debates concerning the most appropriate semantics for program assertions. Our contribution here is unique in that we have applied fundamental software engineering techniques by asking primary stakeholders what they want and, based on this, proposed a means of efficiently realizing the semantics stakeholders want using standard tools and techniques. We describe how support for the new semantics has been added to ESC/Java2, one of the most fully developed VC prototypes. Case studies demonstrate the effectiveness of the new semantics at uncovering previously indiscernible specification errors.
  • Keywords
    program compilers; program verification; systems analysis; Dependable Systems Evolution Grand Challenge; ESC/Java2; VC requirements analysis; program assertions; program correctness proving; software engineering techniques; sound assertion semantics engineering; verifying compiler project; Acoustical engineering; Contracts; Java; Logic programming; Prototypes; Runtime; Software engineering; Software prototyping; Software standards; Virtual colonoscopy; Software verification; assertions; logics of programs; programming by contract; requirements engineering.;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/TSE.2009.59
  • Filename
    5262949