ACM Home Page
Please provide us with feedback. Feedback
Verifying C++ with STL containers via predicate abstraction
Full text PdfPdf (241 KB)
Source
Automated Software Engineering archive
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering table of contents
Atlanta, Georgia, USA
POSTER SESSION: Posters table of contents
Pages 521-524  
Year of Publication: 2007
ISBN:978-1-59593-882-4
Authors
Nicolas Blanc  ETH, Zurich, Switzerland
Alex Groce  Jet Propulsion Laboratory, Pasadena, CA
Daniel Kroening  ETH, Zurich, Switzerland
Sponsors
ACM: Association for Computing Machinery
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 9,   Downloads (12 Months): 69,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1321631.1321724
What is a DOI?

ABSTRACT

This paper describes a flexible and easily extensible predicate abstraction-based approach to the verification of STLusage, and observes the advantages of verifying programsin terms of high-level data structures rather than low-level pointer manipulations. We formalize the semantics of theSTL by means of a Hoare-style axiomatization. The verification requires an operational model conservatively approximating the semantics given by the Standard. Our results show advantages (in terms of errors detected and false positives avoided) over previous attempts to analyze STL usage, due to the power of the abstraction engine and model checker


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
T. Ball and S. K. Rajamani. Boolean programs: A model and process for software analysis. Technical Report 2000--14, Microsoft Research, February 2000.
3
 
4
N. Blanc, A. Groce, and D. Kroening. Verifying C++ with STL containers via predicate abstraction. Technical Report 506, Computer Science Department, ETH Zurich, 2006.
 
5
Aaron R. Bradley, Zohar Manna, and Henny B. Sipma. What's decidable about arrays? In Verification, Model Checking, and Abstract Interpretation, (VMCAI), volume 3855 of Lecture Notes in Computer Science, pages 427--442. Springer, 2006.
 
6
 
7
 
8
 
9
E. Clarke, D. Kroening, N. Sharygina, and K. Yorav. SATABS: SAT-based predicate abstraction for ANSI-C. In Tools and Algorithms for the Construction and Analysis of Systems (TACAS), volume 3440 of Lecture Notes in Computer Science, pages 570--574. Springer, 2005.
10
 
11
N. Eén and Niklas Sörensson. An extensible SAT-solver. In Theory and Applications of Satisfiability Testing (SAT), pages 502--518, 2003.
 
12
 
13
14
 
15
C. A. R. Hoare and N. Wirth. An axiomatic definition of the programming language PASCAL. Acta Informatica, 2, 1973.
 
16
ISO/IEC. ISO/IEC 14882:2003 (E). Programming languages - C++, 2003.
17
18
19
20
 
21
 
22
23

Collaborative Colleagues:
Nicolas Blanc: colleagues
Alex Groce: colleagues
Daniel Kroening: colleagues