paperbot · PL 论文追踪

全部论文 待读 收藏

P1 Scaling Type-Based Points-to Analysis with Saturation

用饱和度扩展基于类型的指向分析
PLDI 8(PLDI)2024匹配度 5/10 · 论文属于静态分析中的指向分析可扩展性研究,并包含 GraalVM Native Image 的工业实现,与用户对静态分析、理论/工程结合及工业落地的兴趣部分契合;但它不涉及 LLM/Agent、浮点程序分析或贝叶斯程序分析,也不是将静态分析应用于 ML/Agentic 程序,因此不属于核心研究方向。引用 10 inbox
Christian Wimmer, Codrut Stancu, David Kozak, Thomas Würthinger
crossref: 2026-09-10

AI 速览

一句话:提出饱和度机制,使基于类型的上下文不敏感指向分析在保持大部分精度的同时达到 RTA 的可扩展性。

整程序静态分析必须在精度与可扩展性之间权衡。上下文不敏感的指向分析常被视为较好折中,但其非线性复杂度使大型应用分析难以扩展;RTA 虽可扩展却精度不足。本文在基于类型的上下文不敏感指向分析中引入饱和度:分析只传播较小的指向集,当某变量可能拥有的值超过给定阈值时,将该变量及其所有使用视为饱和并停止继续分析。作者在 GraalVM Native Image 的指向分析中实现该技术。结果表明,饱和度使 Native Image 能在不到两分钟内分析包含数十万个方法的大型 Java 应用,同时保留指向分析的大部分精度。

问题
整程序静态分析需要权衡精度与可扩展性;上下文不敏感指向分析仍有非线性复杂度,难以分析大型应用,而 RTA 可扩展但精度不足。
方法
在基于类型的上下文不敏感指向分析中使用饱和度,仅传播小指向集;若变量可能取值超过阈值,则将该变量及其使用标记为饱和并停止分析。
评估
在 GraalVM Native Image 的指向分析中实现,并用于分析包含数十万个方法的大型 Java 应用,验证分析时间可控制在两分钟内。
原文摘要(Abstract)

Designing a whole-program static analysis requires trade-offs between precision and scalability. While a context-insensitive points-to analysis is often considered a good compromise, it still has non-linear complexity that leads to scalability problems when analyzing large applications. On the other hand, rapid type analysis scales well but lacks precision. We use saturation in a context-insensitive type-based points-to analysis to make it as scalable as a rapid type analysis, while preserving most of the precision of the points-to analysis. With saturation, the points-to analysis only propagates small points-to sets for variables. If a variable can have more values than a certain threshold, the variable and all its usages are considered saturated and no longer analyzed. Our implementation in the points-to analysis of GraalVM Native Image, a closed-world approach to build standalone binaries for Java applications, shows that saturation allows GraalVM Native Image to analyze large Java applications with hundreds of thousands of methods in less than two minutes.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@article{paperbot2511,
  title = {Scaling Type-Based Points-to Analysis with Saturation},
  author = {Christian Wimmer and Codrut Stancu and David Kozak and Thomas Würthinger},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {8},
  number = {PLDI},
  year = {2024},
  doi = {10.1145/3656417}
}