首页> 外文期刊>Software >Static analysis of JavaScript libraries in a scalable and precise way using loop sensitivity
【24h】

Static analysis of JavaScript libraries in a scalable and precise way using loop sensitivity

机译:使用循环灵敏度以可扩展且精确的方式对JavaScript库进行静态分析

获取原文
获取原文并翻译 | 示例
           

摘要

Statically analyzing JavaScript applications often requires an analysis of JavaScript libraries because many JavaScript applications use libraries. However, static analysis techniques for JavaScript are not yet ready for analyzing libraries in a scalable and precise manner. Simply loading JavaScript libraries uses various dynamic features of JavaScript, which cause static analyzers to suffer from mutually intermingled problems of scalability and imprecision. In this paper, we present a loop-sensitive analysis (LSA) technique, which can improve the analysis scalability when analyzing JavaScript libraries by enhancing the analysis precision of loops. The LSA technique distinguishes loop iterations when loop conditions can be determined to be either true or false precisely. We formalize LSA in the abstract interpretation framework in the presence of tricky language features such as exceptions and prove its soundness and precision theorems using Coq. We evaluate our LSA implementation with the analysis results of programs that use 5 JavaScript libraries and show that LSA significantly improves the analysis scalability and precision of an existing JavaScript static analyzer when analyzing JavaScript libraries. In addition, using the configurability of LSA, we experimentally show the correlation between scalability and precision in the analysis of JavaScript libraries. We found that even the analysis of simple programs that just load jQuery, which is the most popular JavaScript library, in a scalable way requires distinguishing not only the last 4 functions being called but also 40 iterations in each loop with 2-level nested loops at least. Both the mechanization and implementation of LSA are publicly available.
机译:静态分析JavaScript应用程序通常需要分析JavaScript库,因为许多JavaScript应用程序都使用库。但是,JavaScript的静态分析技术尚未准备好以可扩展且精确的方式分析库。只需加载JavaScript库即可使用JavaScript的各种动态功能,这会导致静态分析器遭受可伸缩性和不精确性相互融合的问题。在本文中,我们提出了一种循环敏感分析(LSA)技术,该技术可以通过提高循环的分析精度来提高分析JavaScript库时的分析可伸缩性。当可以精确确定循环条件为真或假时,LSA技术会区分循环迭代。我们在存在棘手的语言功能(例如异常)的情况下,在抽象解释框架中将LSA形式化,并使用Coq证明其合理性和精确性定理。我们使用5个JavaScript库的程序的分析结果评估了LSA的实现,并表明LSA在分析JavaScript库时显着提高了现有JavaScript静态分析器的分析可扩展性和精度。此外,使用LSA的可配置性,我们在JavaScript库分析中实验性地显示了可伸缩性和精度之间的相关性。我们发现,即使以可伸缩的方式分析仅加载jQuery(这是最流行的JavaScript库)的简单程序,不仅需要区分被调用的最后4个函数,还需要区分每个循环中有40个迭代的2级嵌套循环。最小。 LSA的机械化和实施都是公开的。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号