JSAI公司

JSAI:为JavaScript设计一个健全、可配置、高效的静态分析器。我们描述了JSAI,一个JavaScript的抽象解释器。JSAI使用新的抽象域来计算类型推理、指针分析、字符串分析、整数和布尔常量传播以及控制流分析的简化积。此外,JSAI允许对分析控制流敏感度(即上下文、路径和堆敏感度)进行模块化配置,而无需对分析实现进行任何更改。JSAI被设计成相对于JavaScript的特定具体语义来说是可靠的,它已经针对现有的产品级JavaScript实现进行了广泛的测试。我们使用广泛的基准测试套件对JSAI的性能和精度进行全面评估。这个基准测试套件包括真实世界的JavaScript应用程序、通过Emscripten机器生成的JavaScript代码和浏览器插件。我们使用JSAI的可配置性来评估大量的分析敏感性(一些是众所周知的,一些是新颖的),并观察到一些令人惊讶的结果。我们相信,JSAI的可配置性及其形式化规范将其定位为一个有用的研究平台,可以对JavaScript的新颖敏感度、抽象域和客户端分析进行实验。