首页> 外文会议>Annual ACM SIGPLAN-SIGACT symposium on principles of programming languages >Pick Your Contexts Well: Understanding Object-Sensitivity
【24h】

Pick Your Contexts Well: Understanding Object-Sensitivity

机译:选择你的上下文:了解对象敏感性

获取原文

摘要

Object-sensitivity has emerged as an excellent context abstraction for points-to analysis in object-oriented languages. Despite its practical success, however, object-sensitivity is poorly understood. For instance, for a context depth of 2 or higher, past scalable implementations deviate significantly from the original definition of an object-sensitive analysis. The reason is that the analysis has many degrees of freedom, relating to which context elements are picked at every method call and object creation. We offer a clean model for the analysis design space, and discuss a formal and informal understanding of object-sensitivity and of how to create good object-sensitive analyses. The results are surprising in their extent. We find that past implementations have made a sub-optimal choice of contexts, to the severe detriment of precision and performance. We define a "full-object-sensitive" analysis that results in significantly higher precision, and often performance, for the exact same context depth. We also introduce "type-sensitivity" as an explicit approximation of object-sensitivity that preserves high context quality at substantially reduced cost. A type-sensitive points-lo analysis makes an unconventional use of types as context: the context types are not dynamic types of objects involved in the analysis, but instead upper bounds on the dynamic types of their allocator objects. Our results expose the influence of context choice on the quality of points-to analysis and demonstrate type-sensitivity to be an idea with major impact: It decisively advances the state-of-the-art with a spectrum of analyses that simultaneously enjoy speed (several times faster than an analogous object-sensitive analysis), scalability (comparable to analyses with much less context-sensitivity), and precision (comparable to the best object-sensitive analysis with the same context depth).
机译:对象敏感性已成为面向对象语言分析的优秀上下文抽象。然而,尽管其实际成功,但对象敏感性很差。例如,对于2或更高的上下文深度,过去可扩展的实现偏离对象敏感分析的原始定义。原因是分析具有许多程度的自由度,与每个方法调用和对象创建何种上下文元素有关。我们为分析设计空间提供了一个干净的模型,并讨论了对对象敏感性的正式和非正式的理解,以及如何创建良好的对象敏感分析。结果在其范围内令人惊讶。我们发现过去的实现已经进行了次优选择上下文,以严重损害精度和性能。我们为完全相同的上下文深度定义了“全对象敏感的”分析,导致精度更高,并且通常是性能。我们还介绍了“类型敏感性”,作为对象敏感度的明确近似,以大大降低成本保持高上下文质量。类型敏感的点-LO分析是一种非常规使用类型作为上下文的类型:上下文类型不是分析中涉及的动态对象的动态类型,而是其分配器对象的动态类型上的上限。我们的结果揭示了语境选择对分数质量的影响 - 分析,并展示了一种具有重大影响的想法的类型敏感性:它具有同时享受速度的频谱的谱分析地推进了最先进的分析(比类似的对象敏感性分析快几倍),可伸缩性(可与较少的上下文 - 灵敏度的分析相当),并且精度(与具有相同上下文深度的最佳对象分析相当)。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号