Multilevel static analysis for improving program quality
- 作者: Belevantsev A.A.1,2
-
隶属关系:
- Institute for System Programming
- Moscow State University
- 期: 卷 43, 编号 6 (2017)
- 页面: 321-336
- 栏目: Article
- URL: https://journals.rcsi.science/0361-7688/article/view/176554
- DOI: https://doi.org/10.1134/S0361768817060044
- ID: 176554
如何引用文章
详细
In this paper, we discuss some program analysis methods for finding defects in source code that are combined to form a multilevel analysis system. The first level consists of the checks using abstract syntax tree (AST) walks and intraprocedural dataflow; this level also builds a memory model for the subsequent levels. The memory model requires evaluating integer expressions and points-to sets. The second level is an interprocedural summary-based approach whereby the program features of interest are calculated as attributes of value classes that are formed in the program. Finally, the third level is a path-sensitive analysis that builds reachability formulas for program points and tracks the predicates that should hold for the desired features to be observable. The errors are found by testing the formulas for satisfiability with an SMT solver. All these levels of analysis are implemented in the Svace analyzer toolset, which demonstrates scalability up to millions of lines of code and precision of 60–90% true positives.
作者简介
A. Belevantsev
Institute for System Programming; Moscow State University
编辑信件的主要联系方式.
Email: abel@ispras.ru
俄罗斯联邦, ul. Solzhenitsyna 25, Moscow, 109004; Moscow, 119991
补充文件
