Abstract
This paper concerns the scalability challenges of symbolic abstraction: given a formula φ in a logic L and an abstract domain A, find a most precise element in the abstract domain that over-approximates the meaning of φ. Symbolic abstraction is an important point in the space of abstract interpretation, as it allows for automatically synthesizing the best abstract transformers. However, current techniques for symbolic abstraction can have difficulty delivering on its practical strengths, due to performance issues. In this work, we introduce two algorithms for the symbolic abstraction of quantifier-free bit-vector formulas, which apply to the bit-vector interval domain and a certain kind of polyhedral domain, respectively. We implement and evaluate the proposed techniques on two machine code analysis clients, namely static memory corruption analysis and constrained random fuzzing. Using a suite of 57,933 queries from the clients, we compare our approach against a diverse group of state-of-the-art algorithms. The experiments show that our algorithms achieve a substantial speedup over existing techniques and illustrate significant precision advantages for the clients. Our work presents strong evidence that symbolic abstraction of numeric domains can be efficient and practical for large and realistic programs.
Author supplied keywords
Cite
CITATION STYLE
Yao, P., Shi, Q., Huang, H., & Zhang, C. (2021). Program analysis via efficient symbolic abstraction. Proceedings of the ACM on Programming Languages, 5(OOPSLA). https://doi.org/10.1145/3485495
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.