面向对象Ada代码切片与分析:技术解析与应用
1. Ada 95程序切片新方法
在Ada 95编程中,对于面向对象程序的切片有了新的思路。与传统的系统依赖图(SDG)将所有子程序的程序依赖图(PDG)连接起来不同,新方法中不同子程序的PDG是相互独立的。通过区分属于不同对象的组件,可以获得更精确的切片。
1.1 切片算法流程
- 输入 :程序P的PDG和切片准则
<s0, v>
。 - 输出 :关于
<s0, v>
的切片Dep_S
。 - 初始化 :
W = {s0}
;Dep_S = {s0}
;PL = F
。 - 算法步骤 :
repeat
Remove a node s from W;
for all edges <s, s'> which are not marked do
Mark <s, s'>;
W = W ∪ {s'};
Dep_S = Dep_S ∪ {s'};
if s' calls a function F then