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
Link To Document