一句话:提出模块感知的上下文敏感指针分析,利用 JPMS 的 provides/uses 语义恢复指向关系并传播关键上下文。
Java 平台模块系统(JPMS)自 Java 9 起广泛使用,但现有指针分析未利用其模块语义。本文提出模块感知的指针分析 MPA,首先对 JPMS 中 provides 与 uses 关键字进行建模,以恢复因模块边界而缺失的指向关系;进而设计模块感知的上下文敏感分析,利用模块化特性传播并应用关键上下文,从而在精度与效率之间取得更好平衡。作者在 TAI-E 中实现 MPA,并与标准对象敏感分析进行大量实验。结果表明,MPA 能发现更多可达方法,在相同分析下最多将可达方法数提升 90.9 倍(lombok),性能接近上下文不敏感分析,平均精度优于 1-object-sensitivity。
The Java Platform Module System (JPMS) has found widespread applications since introduced in Java 9. However, existing pointer analyses fail to leverage the semantics of JPMS. This paper presents a novel module-aware approach to improving the performance of pointer analysis. We model the semantics of keywords provides and uses in JPMS to recover missing points-to relations. We design a module-aware context-sensitive analysis, which can propagate and apply critical contexts (by exploiting modularity) to balance precision and efficiency better. We have implemented our module-aware pointer analysis named MPA in TAI - E and conducted extensive experiments to compare it with standard object-sensitivity. The evaluation results demonstrate that MPA finds more reachable methods and enhances existing context-sensitive approaches, striking a good balance between efficiency and precision. MPA can increase the number of reachable methods up to 90.9× (lombok) under the same analysis. Performance-wise, MPA is nearly as fast as context-insensitivity for most benchmarks, while its precision is superior to that of 1-object-sensitivity on average.
DOI 原文 ·
@inproceedings{paperbot8690,
title = {Module-Aware Context Sensitive Pointer Analysis},
author = {Haofeng Li and Chenghang Shi and Jie Lu and Lian Li and Zixuan Zhao},
booktitle = {ICSE},
year = {2025},
doi = {10.1109/icse55347.2025.00227}
}