paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Static Backward Slicing of Non-deterministic Programs and Systems

非确定性程序与系统的静态后向切片
TOPLAS 40(3)2018匹配度 4/10 · 该论文属于静态分析中的程序切片理论,研究非确定性程序的后向切片与算法,但未涉及 LLM/Agent、浮点程序分析或贝叶斯程序分析,与用户当前核心交叉方向无直接关联。仅可作为静态分析基础理论储备,匹配度较低。引用 5 inbox
Sebastian Danicic, Michael R. Laurence
crossref: 2026-09-10

AI 速览

一句话:提出非确定性程序图上的后向切片理论,用 commitment 封闭刻画弱/强切片并给出 O(n^3) 算法。

本文研究非确定性程序与系统的静态后向切片。作者用非确定性程序图(NDPG)表示任意非确定性分支,并定义 NDPG 与其非终止不敏感(弱)切片、非终止敏感(强)切片之间必须满足的结构与语义关系。为此提出弱/强 commitment 封闭,作为控制流图上相应控制依赖封闭在 NDPG 中的对应物。论文证明:若 NDPG 顶点子集同时满足数据依赖封闭和(弱/强)commitment 封闭,则其诱导图即为满足要求的(弱/强)切片;并给出计算最小数据与 commitment 封闭集的 O(n^3) 算法。作者以 Dijkstra 非确定性卫式命令语言(DNGCL)为例,说明程序可转换为 NDPG 后切片,且所得切片可转回有效 DNGCL 程序。

问题
如何为含任意非确定性分支的程序和系统定义并计算静态后向切片,同时区分对非终止敏感与不敏感的两种切片语义。
方法
将程序抽象为非确定性程序图(NDPG),定义数据依赖封闭与弱/强 commitment 封闭,证明满足封闭性的诱导子图即为弱/强切片,并给出 O(n^3) 最小封闭集算法;展示 DNGCL 与 NDPG 之间的转换。
评估
通过理论证明和 DNGCL 示例进行说明,证明算法所得诱导图分别保证为弱/强切片,且切片可转回有效 DNGCL 源程序。
原文摘要(Abstract)

A theory of slicing non-deterministic programs and systems is developed. Non-deterministic programs and systems are represented as non-deterministic program graphs (NDPGs) that allow arbitrary non-deterministic branching to be expressed. Structural and semantic relationships that must exist between an NDPG and (1) its non-termination insensitive (weak) slices and (2) its non-termination sensitive (strong) slices are defined. Weak and strong commitment closure are introduced. These are the NDPG equivalents of being closed under non-termination sensitive and non-termination insensitive control dependence; properties defined on subsets of vertices of the equivalent deterministic structure: the control flow graph. It is proved that if a subset of the vertices of an NDPG is both data dependence closed and (weak/strong) commitment closed, then the resulting induced graph will, indeed, satisfy our structural and semantic requirements. O ( n 3 ) algorithms for computing minimal data and weak/strong commitment closed sets are given. The resulting induced graphs are thus guaranteed to be weak and strong slices, respectively. It is demonstrated, with examples, that programs written in Dijkstra's non-deterministic guarded command language (DNGCL) can be converted to NDPGs to which our slicing algorithms can then be applied. It is proved that the resulting slices (NDPGs) can always be converted back to valid DNGCL programs, highlighting the applicability of our approach to slicing at the source code level.

链接与引用

DOI 原文 ·

BibTeX
@article{paperbot314,
  title = {Static Backward Slicing of Non-deterministic Programs and Systems},
  author = {Sebastian Danicic and Michael R. Laurence},
  journal = {ACM Transactions on Programming Languages and Systems},
  volume = {40},
  number = {3},
  year = {2018},
  doi = {10.1145/2886098}
}