A symbolic analysis framework for static analysis of imperative programming languages

被引:6
作者
Burgstaller, Bernd [1 ]
Scholz, Bernhard [2 ]
Blieberger, Johann [3 ]
机构
[1] Yonsei Univ, Seoul 120749, South Korea
[2] Univ Sydney, Sydney, NSW 2006, Australia
[3] Vienna Univ Technol, A-1040 Vienna, Austria
基金
新加坡国家研究基金会; 澳大利亚研究理事会;
关键词
Static program analysis; Symbolic analysis; Path expression algebra; Programming language semantics; INDUCTION VARIABLES; EXECUTION; CHECKING;
D O I
10.1016/j.jss.2011.11.1039
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We present a generic symbolic analysis framework for imperative programming languages. Our framework is capable of computing all valid variable bindings of a program at given program points. This information is invaluable for domain-specific static program analyses such as memory leak detection, program parallelization, and the detection of superfluous bound checks, variable aliases and task deadlocks. We employ path expression algebra to model the control flow information of programs. A homomorphism maps path expressions into the symbolic domain. At the center of the symbolic domain is a compact algebraic structure called supercontext. A supercontext contains the complete control and data flow analysis information valid at a given program point. Our approach to compute supercontexts is based purely on algebra and is fully automated. This novel representation of program semantics closes the gap between program analysis and computer algebra systems, which makes supercontexts an ideal symbolic intermediate representation for all domain-specific static program analyses. Our approach is more general than existing methods because it can derive solutions for arbitrary (even intra-loop and nested loop) nodes of reducible and irreducible control flow graphs. We prove the correctness of our symbolic analysis method. Our experimental results show that the problem sizes arising from real-world applications such as the SPEC95 benchmark suite are tractable for our symbolic analysis framework. (C) 2011 Elsevier Inc. All rights reserved.
引用
收藏
页码:1418 / 1439
页数:22
相关论文
共 50 条
  • [31] Scaling Up Symbolic Analysis by Removing Z-Equivalent States
    Li, Yueqi
    Cheung, S. C.
    Zhang, Xiangyu
    Liu, Yepang
    ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, 2014, 23 (04)
  • [32] Conformance analysis for comorbid patients in Answer Set Programming
    Piovesan, Luca
    Terenziani, Paolo
    Dupre, Daniele Theseider
    JOURNAL OF BIOMEDICAL INFORMATICS, 2020, 103
  • [33] QuickChecking static analysis properties
    Midtgaard, Jan
    Moller, Anders
    SOFTWARE TESTING VERIFICATION & RELIABILITY, 2017, 27 (06)
  • [34] Naturalistic Static Program Analysis
    Kallehbasti, Mohammad Mehdi Pourhashem
    Ghafari, Mohammad
    2023 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION AND REENGINEERING, SANER, 2023, : 743 - 747
  • [35] Symbolic analysis of analog circuits with hard nonlinearity
    Manthe, A
    Zhao, L
    Shi, CJR
    40TH DESIGN AUTOMATION CONFERENCE, PROCEEDINGS 2003, 2003, : 542 - 545
  • [36] Bidirectional Symbolic Analysis for Effective Branch Testing
    Baluda, Mauro
    Denaro, Giovanni
    Pezze, Mauro
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2016, 42 (05) : 403 - 426
  • [37] Recursive Symbolic Bound Analysis in Loop Structure
    Zhou, Lei
    Chen, Kefei
    2010 2ND INTERNATIONAL CONFERENCE ON COMPUTER AND AUTOMATION ENGINEERING (ICCAE 2010), VOL 1, 2010, : 76 - 80
  • [38] Symbolic analysis of finite words:: the complexity function
    Jaeger, S
    Lima, R
    Mossé, B
    BULLETIN OF THE BRAZILIAN MATHEMATICAL SOCIETY, 2003, 34 (03): : 457 - 477
  • [39] NEUROSPF: A tool for the Symbolic Analysis of Neural Networks
    Usman, Muhammad
    Noller, Yannic
    Pasareanu, Corina S.
    Sun, Youcheng
    Gopinath, Divya
    2021 IEEE/ACM 43RD INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING: COMPANION PROCEEDINGS (ICSE-COMPANION 2021), 2021, : 25 - 28
  • [40] Symbolic analysis of finite words: the complexity function
    Sébastien Jaeger
    Ricardo Lima
    Brigitte Mossé
    Bulletin of the Brazilian Mathematical Society, 2003, 34 : 457 - 477