一句话:提出泛型敏感性,通过保留泛型实例化点并维护类型变量查找表,提升上下文敏感指针分析对泛型代码的精度。
泛型编程在 Java 等面向对象程序中被广泛使用,但现有上下文敏感指针分析在分析泛型代码时效果较差。本文提出泛型敏感性(generic sensitivity),一种面向泛型的上下文定制方案。其核心思想是:将泛型实例化点,即用具体类型实例化泛型类或方法的位置,始终保留为关键的上下文元素。为实现这一点,作者在上下文中加入类型变量查找映射(type variable lookup map),并在分析过程中以上下文敏感的方式高效更新该映射。该方案旨在增强上下文敏感指针分析对泛型实例化及其类型变量绑定的区分能力,从而改善对泛型程序的分析精度。摘要未报告具体实验评估结果。
Generic programming has been extensively used in object-oriented programs such as Java. However, existing context-sensitive pointer analyses perform poorly in analyzing generics. This paper introduces generic sensitivity, a new context customization scheme targeting generics. We design our context customization scheme in such a way that generic instantiation sites, i.e., locations instantiating generic classes/methods with concrete types, are always preserved as key context elements. This is realized by augmenting contexts with a type variable lookup map, which is efficiently updated during the analysis in a context-sensitive manner.
@inproceedings{paperbot6999,
title = {Generic sensitivity: customizing context-sensitive pointer analysis for generics},
author = {Haofeng Li and Jie Lu and Haining Meng and Liqing Cao and Yongheng Huang and Lian Li and Lin Gao},
booktitle = {FSE},
year = {2022},
doi = {10.1145/3540250.3549122}
}