首页> 外文期刊>Formal Aspects of Computing >TFA: an efficient and precise virtual method call resolution for Java
【24h】

TFA: an efficient and precise virtual method call resolution for Java

机译:TFA:高效且精确的虚拟方法调用Java的分辨率

获取原文
获取原文并翻译 | 示例
获取外文期刊封面目录资料

摘要

The problem of statically resolving virtual method calls in object-oriented (OO) programming languages has been a long standing challenge, often due to the overly complicated class hierarchy structures in modern OO programming languages such as Java, C# and C++. Traditional ways of dealing with this problem include class hierarchy analysis (CHA), variable type analysis (VTA), and retrieval of type information after a sophisticated points-to analysis. In this paper, we tackle this problem by proposing a new approach called type flow analysis (TFA) which propagates type information as well as field access information through the syntactic structure of a program. Our methodology is purely algebraic and there is no need to explicitly construct a heap abstraction. We have assessed our methodology from two perspectives. Regarding its theoretical foundation, we have proved that in the context insensitive setting, our method is as precise as the standard Andersen's subset based points-to analysis regarding the derived types for variables. For an experimental evaluation of TFA, we have implemented the algorithm in the Soot framework and used it to analyze the SPECjvm2008 benchmark suite. During the experiment, we have shown that our method is usually 30-100 times faster than the standard points-to analysis. We further conduct a range of detailed analysis based on the baseline data obtained by running a dynamic profiler, which is also implemented by us, on the SPECjvm2008. The experiment results confirm that TFA can achieve outstanding performance with acceptable accuracy when applied on real-world Java programs.
机译:静态解析面向对象(OO)编程语言的虚拟方法调用的问题已经是一个很长的站立挑战,通常是由于诸如Java,C#和C ++之类的现代OO编程语言中过于复杂的类层次结构。传统处理此问题的方法包括类层次分析(CHA),变量类型分析(VTA),以及在复杂的点分析后的类型信息检索。在本文中,我们通过提出一种称为类型流分析(TFA)的新方法来解决这个问题,该方法通过程序的句法结构传播类型信息以及现场访问信息。我们的方法纯粹是代数,无需明确构建堆抽象。我们从两个角度评估了我们的方法。关于其理论基础,我们已经证明,在上下文不敏感的环境中,我们的方法与标准Andersen的子集那样精确,以分析变量的派生类型。对于TFA的实验评估,我们已经在烟灰框架中实现了算法,并使用它来分析SpecJVM2008基准套件。在实验期间,我们已经表明,我们的方法通常比标准点分析快30-100倍。我们进一步基于通过运行动态分析器获得的基线数据进行一系列详细分析,该数据在SpecJVM2008上运行了我们的动态分析器。实验结果证实,TFA在应用于现实世界Java程序时,TFA可以通过可接受的准确度实现出色的性能。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号