Proteus: computing disjunctive loop summary via path dependency analysis
Authors:
Open Access
- 1 November 2016
- conference paper
- Published by Association for Computing Machinery (ACM)
- p. 61-72
Abstract
Loops are challenging structures for program analysis, especially when loops contain multiple paths with complex interleaving executions among these paths. In this paper, we first propose a classification of multi-path loops to understand the complexity of the loop execution, which is based on the variable updates on the loop conditions and the execution order of the loop paths. Secondly, we propose a loop analysis framework, named Proteus, which takes a loop program and a set of variables of interest as inputs and summarizes path-sensitive loop effects on the variables. The key contribution is to use a path dependency automaton (PDA) to capture the execution dependency between the paths. A DFS-based algorithm is proposed to traverse the PDA to summarize the effect for all feasible executions in the loop. The experimental results show that Proteus is effective in three applications: Proteus can 1) compute a more precise bound than the existing loop bound analysis techniques; 2) significantly outperform state-of-the-art tools for loop verification; and 3) generate test cases for deep loops within one second, while KLEE and Pex either need much more time or fail.Keywords
Funding Information
- DARPA (FA8750-15-2-0080)
- National Science Foundation of China (61572349, 61272106)
- National Research Foundation Singapore (NRF2014NCR-NCR001-30)
- US National Science Foundation (1542117)
This publication has 52 references indexed in Scilit:
- Verification as Learning Geometric Concepts2013
- PKind: A parallel k-induction based model checkerElectronic Proceedings in Theoretical Computer Science, 2011
- Automatic analysis of DMA races using model checking and k-inductionFormal Methods in System Design, 2011
- Compositional may-must program analysisACM SIGPLAN Notices, 2010
- Automatic modular abstractions for linear constraintsACM SIGPLAN Notices, 2009
- SPEEDACM SIGPLAN Notices, 2009
- A decision procedure for propositional projection temporal logic with infinite modelsActa Informatica, 2007
- The trace partitioning abstract domainACM Transactions on Programming Languages and Systems, 2007
- The octagon abstract domainHigher-Order and Symbolic Computation, 2006
- Affine relationships among variables of a programActa Informatica, 1976