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 条
  • [41] An Integer Static Analysis for Better Extrapolation in Uppaal
    Lund, Sebastian
    Van Diepen, Jesper
    Larsen, Kim G.
    Muniz, Marco
    Jorgensen, Tobias Ringholm
    Andersen, Tobias Skaarup Daa
    FORMAL MODELING AND ANALYSIS OF TIMED SYSTEMS, FORMATS 2021, 2021, 12860 : 84 - 99
  • [42] Static Analysis and Compiler Design for Idempotent Processing
    de Kruijf, Marc
    Sankaralingam, Karthikeyan
    Jha, Somesh
    ACM SIGPLAN NOTICES, 2012, 47 (06) : 475 - 486
  • [43] Parameterized Static Analysis for Weak Memory Models
    Sharma, Divyanjali
    Sharma, Subodh
    PROCEEDINGS OF THE 17TH INNOVATIONS IN SOFTWARE ENGINEERING CONFERENCE, ISEC 2024, 2024,
  • [44] Static analysis of pattern-free properties
    Cirstea, Horatiu
    Lermusiaux, Pierre
    Moreau, Pierre-Etienne
    PROCEEDINGS OF THE 23RD INTERNATIONAL SYMPOSIUM ON PRINCIPLES AND PRACTICE OF DECLARATIVE PROGRAMMING, PPDP 2021, 2021,
  • [45] Speeding up Static Analysis with the Split Operator
    Arceri, Vincenzo
    Dolcetti, Greta
    Zaffanella, Enea
    PROCEEDINGS OF THE 12TH ACM SIGPLAN INTERNATIONAL WORKSHOP ON THE STATE OF THE ART IN PROGRAM ANALYSIS, SOAP 2023, 2023, : 14 - 19
  • [46] Natural semantics as a static program analysis framework
    Glesner, S
    Zimmermann, W
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2004, 26 (03): : 510 - 577
  • [47] Reconciling Elastic and Equilibrium Methods for Static Analysis
    Shin, Hijung V.
    Porst, Christopher F.
    Vouga, Etienne
    Ochsendorf, John
    Durand, Fredo
    ACM TRANSACTIONS ON GRAPHICS, 2016, 35 (02):
  • [48] SOLO: A Lightweight Static Analysis for Differential Privacy
    Abuah, Chike
    Darais, David
    Near, Joseph P.
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2022, 6 (OOPSLA): : 699 - 728
  • [49] The Impact of Program Transformations on Static Program Analysis
    Namjoshi, Kedar S.
    Pavlinovic, Zvonimir
    STATIC ANALYSIS (SAS 2018), 2018, 11002 : 306 - 325
  • [50] Reducing Static Analysis Unsoundness with Approximate Interpretation
    Laursen, Mathias Rud
    Xu, Wenyuan
    Moller, Anders
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2024, 8 (PLDI): : 1165 - 1188