DocumentCode
1579858
Title
Symbolic Program Analysis Using Term Rewriting and Generalization
Author
Sinha, Nishant
Author_Institution
NEC Res. Labs., Princeton, NJ
fYear
2008
Firstpage
1
Lastpage
9
Abstract
Symbolic execution by James C. King (1976) is a popular program verification technique, where the program inputs are initialized to unknown symbolic values, and then propagated along program paths with the help of decision procedures. This technique has two main bottlenecks: (a) the number of program execution paths to be explored may be exponential, and, (b) the state representation (map from variables to terms) may blow-up. We propose a new program verification technique that addresses the problems by (a) performing a work list based analysis that handles join points, and (b) simplifying the intermediate state representation by using term rewriting. In addition, our technique tries to compact expressions generated during analysis of program loops by using a term generalization technique based on anti-unification. We have implemented the proposed method in the F-SOFT verification framework using the Maude term rewriting engine. Preliminary experiments show that the proposed method is effective in improving verification times on real-life benchmarks.
Keywords
program diagnostics; program verification; rewriting systems; F-SOFT verification; program verification technique; symbolic execution; symbolic program analysis; term generalization; term rewriting; Algorithm design and analysis; Benchmark testing; Engines; Explosions; Java; Merging; National electric code; Performance analysis; Surface-mount technology; System testing;
fLanguage
English
Publisher
ieee
Conference_Titel
Formal Methods in Computer-Aided Design, 2008. FMCAD '08
Conference_Location
Portland, OR
Print_ISBN
978-1-4244-2735-2
Electronic_ISBN
978-1-4244-2736-9
Type
conf
DOI
10.1109/FMCAD.2008.ECP.23
Filename
4689182
Link To Document