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 条
  • [1] Symbolic analysis of imperative programming languages
    Burgstaller, Bernd
    Scholz, Bernhard
    Blieberger, Johann
    MODULAR PROGRAMMING LANGUAGES, PROCEEDINGS, 2006, 4228 : 172 - 194
  • [2] Static Reduction Analysis for imperative object oriented languages
    Barthe, G
    Serpette, BP
    LOGIC FOR PROGRAMMING AND AUTOMATED REASONING, PROCEEDINGS, 2000, 1955 : 344 - 361
  • [3] A Generic Static Analysis Framework for Domain-specific Languages
    Mandal, Avijit
    Mohan, Devina
    Jetley, Raoul
    Nair, Sreeja
    D'Souza, Meenakshi
    2018 IEEE 23RD INTERNATIONAL CONFERENCE ON EMERGING TECHNOLOGIES AND FACTORY AUTOMATION (ETFA), 2018, : 27 - 34
  • [4] Algorithmic Completeness of Imperative Programming Languages
    Marquer, Yoann
    FUNDAMENTA INFORMATICAE, 2019, 168 (01) : 51 - 77
  • [5] On the computational complexity of imperative programming languages
    Kristiansen, L
    Niggl, KH
    THEORETICAL COMPUTER SCIENCE, 2004, 318 (1-2) : 139 - 161
  • [6] K: A Semantic Framework for Programming Languages and Formal Analysis Tools
    Rosu, Grigore
    DEPENDABLE SOFTWARE SYSTEMS ENGINEERING, 2017, 50 : 186 - 206
  • [7] A behavioral specification of imperative programming languages
    Nakamura, Masaki
    Watanabe, Masahiro
    Futatsugi, Kokichi
    IEICE TRANSACTIONS ON FUNDAMENTALS OF ELECTRONICS COMMUNICATIONS AND COMPUTER SCIENCES, 2006, E89A (06) : 1558 - 1565
  • [8] Creation of a Static Analysis Algorithm Using Ad Hoc Programming Languages
    Khalansky, Dmitry
    Lazdin, Arthur
    Mouromtsev, Dmitry
    PROCEEDINGS OF THE 19TH CONFERENCE OF OPEN INNOVATIONS ASSOCIATION (FRUCT), 2016, : 72 - 79
  • [9] MAF: A Framework for Modular Static Analysis of Higher-Order Languages
    Van Es, Noah
    Van der Plas, Jens
    Stievenart, Quentin
    De Roover, Coen
    2020 20TH IEEE INTERNATIONAL WORKING CONFERENCE ON SOURCE CODE ANALYSIS AND MANIPULATION (SCAM 2020), 2020, : 37 - 42
  • [10] Formal Meta-level Analysis Framework for Quantum Programming Languages
    Mahmoud, Mohamed Yousri
    Felty, Amy P.
    ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2018, 338 (338) : 185 - 201