paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Newtonian Program Analysis via Tensor Product

基于张量积的牛顿式程序分析
TOPLAS 39(2)2017匹配度 2/10 · 该论文是程序分析与抽象解释领域的理论工作,研究牛顿式过程间数据流分析与谓词抽象,但未涉及画像核心的 LLM/Agent、浮点程序分析或贝叶斯程序分析等交叉方向。它可能作为静态分析基础背景有参考价值,但与当前追踪的 AI×PL 问题匹配度较低。引用 5 inbox
Thomas Reps, Emma Turetsky, Prathmesh Prabhu
dblp: 2026-09-10crossref: 2026-09-10

AI 速览

一句话:提出基于张量积的改进技术,求解牛顿式过程间数据流分析中由非交换乘法产生的线性上下文无关语言子问题,并用于谓词抽象。

Esparza 等人最近将数值分析中求实值函数根的牛顿法推广到半环上方程组的不动点求解,为过程间数据流分析提供了新途径。与数值情形每次迭代求解一个线性化问题类似,该方法也迭代求解简化子问题。关键困难在于:过程间分析中的“乘法”是函数复合,不可交换,因此无法像数值分析那样将 a*X*b + c*X*d 重排为 (a*b + c*d)*X;这类表达式对应线性上下文无关语言(LCFL)描述的路径问题。本文提出一种基于张量积的改进技术,用于求解牛顿法各轮迭代产生的 LCFL 子问题。该方法适用于谓词抽象,而当前多数软件模型检测器依赖谓词抽象,因而具有应用于过程间分析与验证的潜力。

问题
将牛顿法推广到半环上方程组不动点以求解过程间数据流分析时,乘法因函数复合而不可交换,导致无法像数值分析中那样重排 a*X*b + c*X*d,相关路径问题由线性上下文无关语言描述。
方法
提出一种基于张量积的改进技术,专门求解牛顿法迭代过程中产生的 LCFL 子问题,从而处理非交换乘法带来的困难。
评估
摘要指出该方法适用于谓词抽象,而多数现代软件模型检测器依赖谓词抽象。
原文摘要(Abstract)

Recently, Esparza et al. generalized Newton’s method—a numerical-analysis algorithm for finding roots of real-valued functions—to a method for finding fixed-points of systems of equations over semirings. Their method provides a new way to solve interprocedural dataflow-analysis problems. As in its real-valued counterpart, each iteration of their method solves a simpler “linearized” problem. One of the reasons this advance is exciting is that some numerical analysts have claimed that “‘all’ effective and fast iterative [numerical] methods are forms (perhaps very disguised) of Newton’s method.” However, there is an important difference between the dataflow-analysis and numerical-analysis contexts: When Newton’s method is used in numerical-analysis problems, commutativity of multiplication is relied on to rearrange an expression of the form “ a * X * b + c * X * d ” into “( a * b + c * d )* X .” Equations with such expressions correspond to path problems described by regular languages. In contrast, when Newton’s method is used for interprocedural dataflow analysis, the “multiplication” operation involves function composition and hence is non-commutative: “ a * X * b + c * X * d ” cannot be rearranged into “( a * b + c * d )* X .” Equations with such expressions correspond to path problems described by linear context-free languages (LCFLs). In this article, we present an improved technique for solving the LCFL sub-problems produced during successive rounds of Newton’s method. Our method applies to predicate abstraction, on which most of today’s software model checkers rely.

链接与引用

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

BibTeX
@article{RepsTP17,
  title = {Newtonian Program Analysis via Tensor Product},
  author = {Thomas Reps and Emma Turetsky and Prathmesh Prabhu},
  journal = {ACM Transactions on Programming Languages and Systems},
  volume = {39},
  number = {2},
  year = {2017},
  doi = {10.1145/3024084}
}