Inferring Effective Types for Static Analysis of C Programs

被引:0
|
作者
Jeannet, Bertrand [1 ]
Sotin, Pascal [1 ]
机构
[1] INRIA, Le Chesnay, France
关键词
Static Analysis; Type Inference; C Programming Language; Boolean; Finite Types;
D O I
10.1016/j.entcs.2012.10.006
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
The C language does not have a specific Boolean type: Boolean values are encoded with integers. This is also true for enumerated types, that may be freely and silently cast to and from integers. On the other hand, verification tools aiming at inferring the possible values of variables at each program point may benefit from the information that some (integer) variables are used solely as Boolean or enumerated type variables, or more generally as finite type variables with a small domain. Indeed, specialized and efficient symbolic representations such as BDDs may be used for representing properties on such variables, whereas approximated representations like intervals and octagons are better suited to larger domain integers and floating-points variables. Driven by this motivation, this paper proposes a static analysis for inferring more precise types for the variables of a C program, corresponding to their effective use. The analysis addresses a subset of the C99 language, including pointers, structures and dynamic allocation.
引用
收藏
页码:37 / 47
页数:11
相关论文
共 50 条
  • [1] Inferring Types for Parallel Programs
    Martins, Francisco
    Vasconcelos, Vasco Thudichum
    Huttel, Hans
    [J]. ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2017, (246): : 28 - 36
  • [2] Applying static analysis techniques for inferring termination conditions of logic programs
    Mesnard, F
    Neumerkel, U
    [J]. STATIC ANALYSIS, PROCEEDINGS, 2001, 2126 : 93 - 110
  • [3] Static Analysis of Lockless Microcontroller C Programs
    Beckschulze, Eva
    Biallas, Sebastian
    Kowalewski, Stefan
    [J]. ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2012, (102): : 103 - 114
  • [4] A Memory Model for Static Analysis of C Programs
    Xu, Zhongxing
    Kremenek, Ted
    Zhang, Jian
    [J]. LEVERAGING APPLICATIONS OF FORMAL METHODS, VERIFICATION, AND VALIDATION, PT I, 2010, 6415 : 535 - +
  • [5] Inferring Types and Effects via Static Single Assignment
    Rigon, Leonardo Filipe
    Torrens, Paulo
    Vasconcellos, Cristiano
    [J]. PROCEEDINGS OF THE 35TH ANNUAL ACM SYMPOSIUM ON APPLIED COMPUTING (SAC'20), 2020, : 1314 - 1321
  • [6] A Library Modeling Language for the Static Analysis of C Programs
    Ouadjaout, Abdelraouf
    Mine, Antoine
    [J]. STATIC ANALYSIS (SAS 2020), 2020, 12389 : 223 - 247
  • [7] SharpChecker: Static analysis tool for C# programs
    Koshelev, V. K.
    Ignatiev, V. N.
    Borzilov, A. I.
    Belevantsev, A. A.
    [J]. PROGRAMMING AND COMPUTER SOFTWARE, 2017, 43 (04) : 268 - 276
  • [8] Modular Static Analysis of String Manipulations in C Programs
    Journault, Matthieu
    Mine, Antoine
    Ouadjaout, Abdelraouf
    [J]. STATIC ANALYSIS (SAS 2018), 2018, 11002 : 243 - 262
  • [9] SharpChecker: Static analysis tool for C# programs
    V. K. Koshelev
    V. N. Ignatiev
    A. I. Borzilov
    A. A. Belevantsev
    [J]. Programming and Computer Software, 2017, 43 : 268 - 276
  • [10] Static Analysis for Probabilistic Programs: Inferring Whole Program Properties from Finitely Many Paths
    Sankaranarayanan, Sriram
    Chakarov, Aleksandar
    Gulwani, Sumit
    [J]. ACM SIGPLAN NOTICES, 2013, 48 (06) : 447 - 458