当前位置: X-MOL 学术ACM Trans. Program. Lang. Syst. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Static Backward Slicing of Non-deterministic Programs and Systems
ACM Transactions on Programming Languages and Systems ( IF 1.5 ) Pub Date : 2018-08-27 , DOI: 10.1145/2886098
Sebastian Danicic 1 , Michael R. Laurence 2
Affiliation  

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.

中文翻译:

非确定性程序和系统的静态反向切片

开发了一种对非确定性程序和系统进行切片的理论。非确定性程序和系统表示为非确定性程序图 (NDPG),允许表达任意非确定性分支。定义了 NDPG 与 (1) 其非终止不敏感(弱)切片和 (2) 其非终止敏感(强)切片之间必须存在的结构和语义关系。引入了弱和强承诺关闭。这些是在非终止敏感和非终止不敏感控制依赖下关闭的 NDPG 等价物;在等效确定性结构的顶点子集上定义的属性:控制流图。证明了如果 NDPG 的一个顶点子集既是数据依赖封闭又是(弱/强)承诺封闭的,(n 3) 给出了计算最小数据和弱/强承诺闭集的算法。因此,可以保证生成的诱导图分别是弱切片和强切片。通过示例证明,用 Dijkstra 的非确定性保护命令语言 (DNGCL) 编写的程序可以转换为可以应用我们的切片算法的 NDPG。事实证明,生成的切片 (NDPG) 始终可以转换回有效的 DNGCL 程序,突出了我们的方法在源代码级别切片的适用性。
更新日期:2018-08-27
down
wechat
bug