Determinacy in Static Analysis for jQuery

被引:0
|
作者
Andreasen, Esben [1 ]
Moller, Anders [1 ]
机构
[1] Aarhus Univ, DK-8000 Aarhus C, Denmark
关键词
Languages; Algorithms; Verification; !text type='Java']Java[!/text]Script; program analysis;
D O I
10.1145/2714064.2660214
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Static analysis for JavaScript can potentially help programmers find errors early during development. Although much progress has been made on analysis techniques, a major obstacle is the prevalence of libraries, in particular jQuery, which apply programming patterns that have detrimental consequences on the analysis precision and performance. Previous work on dynamic determinacy analysis has demonstrated how information about program expressions that always resolve to a fixed value in some call context may lead to significant scalability improvements of static analysis for such code. We present a static dataflow analysis for JavaScript that infers and exploits determinacy information on-the-fly, to enable analysis of some of the most complex parts of jQuery. The analysis combines selective context and path sensitivity, constant propagation, and branch pruning, based on a systematic investigation of the main causes of analysis imprecision when using a more basic analysis. The techniques are implemented in the TAJS analysis tool and evaluated on a collection of small programs that use jQuery. Our results show that the proposed analysis techniques boost both precision and performance, specifically for inferring type information and call graphs.
引用
收藏
页码:17 / 31
页数:15
相关论文
共 50 条
  • [1] Heap Abstractions for Static Analysis
    Kanvar, Vini
    Khedker, Uday P.
    ACM COMPUTING SURVEYS, 2016, 49 (02)
  • [2] On the complexity analysis of static analyses
    Mcallester, D
    JOURNAL OF THE ACM, 2002, 49 (04) : 512 - 537
  • [3] Views and Queries: Determinacy and Rewriting
    Nash, Alan
    Segoufin, Luc
    Vianu, Victor
    ACM TRANSACTIONS ON DATABASE SYSTEMS, 2010, 35 (03):
  • [4] Static analysis in datalog extensions
    Halevy, AY
    Mumick, IS
    Sagiv, Y
    Shmueli, O
    JOURNAL OF THE ACM, 2001, 48 (05) : 971 - 1012
  • [5] A system for the static analysis of XPath
    Geneves, Pierre
    Layaida, Nabil
    ACM TRANSACTIONS ON INFORMATION SYSTEMS, 2006, 24 (04) : 475 - 502
  • [6] Determinacy analysis for logic programs using mode and type information
    López-García, P
    Bueno, F
    Hermenegildo, M
    LOGIC BASED PROGRAM SYNTHESIS AND TRANSFORMATION, 2005, 3573 : 19 - 35
  • [7] Write barrier removal by static analysis
    Zee, K
    Rinard, M
    ACM SIGPLAN NOTICES, 2002, 37 (11) : 191 - 210
  • [8] Static Analysis of Active XML Systems
    Abiteboul, Serge
    Segoufin, Luc
    Vianu, Victor
    ACM TRANSACTIONS ON DATABASE SYSTEMS, 2009, 34 (04):
  • [9] Static Analysis for Independent App Developers
    Brutschy, Lucas
    Ferrara, Pietro
    Mueller, Peter
    ACM SIGPLAN NOTICES, 2014, 49 (10) : 847 - 860
  • [10] Theories, Solvers and Static Analysis by Abstract Interpretation
    Cousot, Patrick
    Cousot, Radhia
    Mauborgne, Laurent
    JOURNAL OF THE ACM, 2012, 59 (06)