首页> 外文会议>Static Analysis >An Efficient Inclusion-Based Points-To Analysis for Strictly-Typed Languages
【24h】

An Efficient Inclusion-Based Points-To Analysis for Strictly-Typed Languages

机译:严格类型语言的基于有效包含的指向分析

获取原文

摘要

We describe the design and implementation of an efficient inclusion-based points-to analysis for strictly-typed object-oriented languages. Our implementation easily scales to millions of lines of Java code, and it supports language features such as inheritance, object fields, exceptional control flow, type casting, dynamic dispatch, and reflection. Our algorithm is based on Heintze and Tardieu's Andersen-style points-to analysis designed originally for C programs. We have improved the precision of their algorithm by tracking the fields of individual objects separately and by analyzing the local variables in a method in a flow-sensitive manner. Our algorithm represents the semantics of each procedure concisely using a sparse summary graph representation based on access paths; it iterates over this sparse representation until it reaches a fixed point solution. By utilizing the access path and field information present in the summary graphs, along with minimizing redundant operations and memory management overheads, we are able to quickly and effectively analyze very large programs. Our experimental results demonstrate that this technique can be used to compute precise static call graphs for very large Java programs.
机译:我们描述了针对严格类型的面向对象语言的高效基于包含的指向分析的设计和实现。我们的实现可轻松扩展到数百万行Java代码,并且支持语言功能,例如继承,对象字段,出色的控制流,类型转换,动态分派和反射。我们的算法基于Heintze和Tardieu最初为C程序设计的Andersen风格的指向分析。通过分别跟踪单个对象的字段并以一种对流量敏感的方式分析方法中的局部变量,我们提高了其算法的精度。我们的算法使用基于访问路径的稀疏摘要图表示法来简洁地表示每个过程的语义;它遍历此稀疏表示,直到达到固定点解。通过利用摘要图中显示的访问路径和字段信息,以及最小化冗余操作和内存管理开销,我们能够快速而有效地分析大型程序。我们的实验结果表明,该技术可用于为大型Java程序计算精确的静态调用图。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号