Improving Precision of Java']JavaScript Program Analysis with an Extended Domain of Intervals

被引:3
|
作者
Younang, Astrid [1 ]
Lu, Lunjin [1 ]
机构
[1] Oakland Univ, Comp Sci & Engn Dept, Rochester Hills, MI 48309 USA
来源
IEEE 39TH ANNUAL COMPUTER SOFTWARE AND APPLICATIONS CONFERENCE WORKSHOPS (COMPSAC 2015), VOL 3 | 2015年
关键词
!text type='Java']Java[!/text]Script; static analysis; abstract interpretation; numeric abstract domain; interval analysis;
D O I
10.1109/COMPSAC.2015.175
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
The Abstract Interpretation has been a promising approach for static analysis of JavaScript programs. Static analysis is used for security auditing, debugging, optimization and error checking. JavaScript is dynamically typed, uses prototype-based inheritance and first class functions. It supports reflective calls, access to object fields and allows object fields to be dynamically added and deleted. These dynamic features make JavaScript flexible to use. At the same time, they make JavaScript applications more susceptible to programming errors. The challenge that comes with the analysis of such programs is the design of abstract domains that will precisely track properties of interest without affecting performance. This paper presents our work on improving analysis precision of JavaScript programs. We used an extended domain of intervals to track ranges of numeric values of variables. This is the first time interval domain has been applied to the analysis of the full JavaScript language. We implemented the new abstract domain within a JavaScript abstract interpreter. Our experiments show that the new abstract domain enables the abstract interpreter to infer more precise type information for most of the benchmark programs and strikes a good balance between analysis precision and cost. While the analysis of some benchmarks take more time as expected, some other benchmarks actually take less time.
引用
收藏
页码:441 / 446
页数:6
相关论文
共 34 条
  • [31] Improving precision of type analysis using non-discriminative union
    Lu, Lunjin
    THEORY AND PRACTICE OF LOGIC PROGRAMMING, 2008, 8 : 33 - 79
  • [32] Improving the results of program analysis by abstract interpretation beyond the decreasing sequence
    Rémy Boutonnet
    Nicolas Halbwachs
    Formal Methods in System Design, 2018, 53 : 384 - 406
  • [33] Improving The Precision of Static Analysis: Symbolic Execution Based on GGCC Abstract Syntax Tree
    Liang, Hongliang
    Liu, Shirun
    Zhang, Yini
    Wang, Meilin
    2017 18TH IEEE/ACIS INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, ARTIFICIAL INTELLIGENCE, NETWORKING AND PARALLEL/DISTRIBUTED COMPUTING (SNDP 2017), 2017, : 395 - 400
  • [34] How far are German companies in improving security through static program analysis tools?
    Piskachev, Goran
    Dziwok, Stefan
    Koch, Thorsten
    Merschjohann, Sven
    Bodden, Eric
    2022 IEEE SECURE DEVELOPMENT CONFERENCE (SECDEV 2022), 2022, : 7 - 15