当前位置: X-MOL 学术ACM Trans. Softw. Eng. Methodol. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Eagle
ACM Transactions on Software Engineering and Methodology ( IF 6.6 ) Pub Date : 2021-07-23 , DOI: 10.1145/3450492
Jingbo Lu 1 , Dongjie He 1 , Jingling Xue 1
Affiliation  

Object sensitivity is widely used as a context abstraction for computing the points-to information context-sensitively for object-oriented programming languages such as Java. Due to the combinatorial explosion of contexts in large object-oriented programs, k -object-sensitive pointer analysis (under k -limiting), denoted k -obj , is often inefficient even when it is scalable for small values of k , where k ⩽ 2 holds typically. A recent popular approach for accelerating k -obj trades precision for efficiency by instructing k -obj to analyze only some methods in a program context-sensitively, determined heuristically by a pre-analysis. In this article, we investigate how to develop a fundamentally different approach, Eagle , for designing a pre-analysis that can make k -obj run significantly faster while maintaining its precision. The novelty of Eagle is to enable k -obj to analyze a method with partial context sensitivity (i.e., context-sensitively for only some of its selected variables/allocation sites) by solving a context-free-language (CFL) reachability problem based on a new CFL-reachability formulation of k -obj . By regularizing one CFL for specifying field accesses and using another CFL for specifying method calls, we have formulated Eagle as a fully context-sensitive taint analysis (without k -limiting) that is both effective (by selecting the variables/allocation sites to be analyzed by k -obj context-insensitively so as to reduce the number of context-sensitive facts inferred by k -obj in the program) and efficient (by running linearly in terms of the number of pointer assignment edges in the program). As Eagle represents the first precision-preserving pre-analysis, our evaluation focuses on demonstrating its significant performance benefits in accelerating k -obj for a set of popular Java benchmarks and applications, with call graph construction, may-fail-casting, and polymorphic call detection as three important client analyses.

中文翻译:



对象敏感性被广泛用作上下文抽象,用于在面向对象的编程语言(如 Java)中上下文敏感地计算指向信息。由于大型面向对象程序中上下文的组合爆炸,ķ-object-sensitive指针分析(下ķ-限制),表示 ķ-obj, 即使对于较小的ķ, 在哪里ķ⩽ 2 通常成立。最近流行的加速方法 ķ-obj通过指导以精确换取效率 ķ-obj仅对程序中的某些方法进行上下文敏感的分析,由预分析启发式地确定。在本文中,我们研究如何开发一种完全不同的方法,, 用于设计一个可以使 ķ-obj运行速度明显更快,同时保持其精度。的新颖性是启用 ķ-obj通过解决基于新的 CFL 可达性公式的上下文无关语言 (CFL) 可达性问题来分析具有部分上下文敏感性的方法(即,仅对其某些选定变量/分配位置敏感) ķ-obj. 通过规范一个 CFL 来指定字段访问并使用另一个 CFL 来指定方法调用,我们制定了作为一个完全上下文敏感的污点分析(没有ķ-limiting)既有效(通过选择要分析的变量/分配位点) ķ-obj上下文不敏感,以减少由 ķ-obj在程序中)和高效(通过根据程序中指针分配边的数量线性运行)。作为代表第一个精度保持预分析,我们的评估重点是展示其在加速方面的显着性能优势 ķ-obj对于一组流行的 Java 基准测试和应用程序,调用图构造、可能失败转换和多态调用检测是三个重要的客户端分析。
更新日期:2021-07-23
down
wechat
bug