paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Newly-single and loving it: improving higher-order must-alias analysis with heap fragments

新近单身,乐在其中:用堆片段改进高阶必别名分析
ICFP 5(ICFP)2021匹配度 3/10 · 该论文属于静态分析与抽象解释的理论工作(高阶必别名/环境分析、堆片段框架、抽象计数分析),与用户作为方法学工具的方向有间接关联,但不涉及 LLM/Agent、浮点程序分析或贝叶斯程序分析等核心追踪问题,也未将静态分析应用于 ML/Agentic 程序。引用 6 inbox
Kimball Germane, Jay McCarthy
crossref: 2026-09-10

AI 速览

一句话:提出堆片段框架,使高阶必别名/环境分析能够通用且稳健地推理递归,并实例化抽象计数分析。

高阶必别名分析(常以环境分析形式出现)能提供深层行为洞察,但现有理论,尤其那些最具洞察力的理论,仅能在有限情形下推理递归。作者指出这一弱点并非理论本身固有,而源于其定义框架:这些机器模型在求值过程中串接堆,并将每个抽象资源分配在堆中,因而混淆了抽象上共同存活的资源,例如递归创建的绑定。论文提出堆片段(heap fragments)作为通用技术,使这类理论能够通用而稳健地推理递归。作者在堆片段框架中实例化抽象计数分析,并将其性能与先前的整堆框架进行比较;文中还勾勒了在该框架中实现绑定不变式这一更强环境分析的方法。

问题
高阶必别名/环境分析理论在推理递归时只能在有限情况下工作;问题根源是求值中串接堆的机器模型会混淆抽象上共同存活的资源,如递归创建的绑定。
方法
提出堆片段作为通用技术,并在该框架中实例化抽象计数分析;还勾勒了实现绑定不变式的途径。
评估
将抽象计数在堆片段框架中的性能与先前的整堆框架进行对比。
原文摘要(Abstract)

Theories of higher-order must-alias analysis, often under the guise of environment analysis, provide deep behavioral insight. But these theories---in particular those that are most insightful otherwise---can reason about recursion only in limited cases. This weakness is not inherent to the theories but to the frameworks in which they're defined: machine models which thread the heap through evaluation. Since these frameworks allocate each abstract resource in the heap, the constituent theories of environment analysis conflate co-live resources identified in the abstract, such as recursively-created bindings. We present heap fragments as a general technique to allow these theories to reason about recursion in a general and robust way. We instantiate abstract counting in a heap-fragment framework and compare its performance to a precursor entire-heap framework. We also sketch an approach to realizing binding invariants, a more powerful environment analysis, in the heap-fragment framework.

链接与引用

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

BibTeX
@article{paperbot1127,
  title = {Newly-single and loving it: improving higher-order must-alias analysis with heap fragments},
  author = {Kimball Germane and Jay McCarthy},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {5},
  number = {ICFP},
  year = {2021},
  doi = {10.1145/3473601}
}