首页> 外文期刊>Frontiers of computer science in China >Precise slicing of interprocedural concurrent programs
【24h】

Precise slicing of interprocedural concurrent programs

机译:程序间并发程序的精确切片

获取原文
获取原文并翻译 | 示例
           

摘要

Program slicing is an effective technique for analyzing concurrent programs. However, when a conventional closure-based slicing algorithm for sequential programs is applied to a concurrent interprocedural program, the slice is usually imprecise owing to the intransitivity of interference dependence. Interference dependence arises when a statement uses a variable defined in another statement executed concurrently. In this study, we propose a global dependence analysis approach based on a program reachability graph, and construct a novel dependence graph called marking-statement dependence graph (MSDG), in which each vertex is a 2-tuple of program state and statement. In contrast to the conventional program dependence graph where the vertex is a statement, the dependepce relation in MSDG is transitive. When traversing MSDG, a precise slice will be obtained. To enhance the slicing efficiency without loss of precision, our slicing algorithm adopts a hybrid strategy. The procedures containing interaction statements between threads are inlined and sliced by the slicing algorithm based on program reachability graphs while allowing other procedures to be sliced as sequential programs. We have implemented our algorithm and three other representative slicing algorithms, and conducted an empirical study on concurrent Java programs. The experimental results show that our algorithm computes more precise slices than the other algorithms. Using partial-order reduction techniques, which are effective for reducing the size of a program reachability graph without loss of precision, our algorithm is optimized, thereby improving its performance to some extent.
机译:程序切片是一种分析并发程序的有效技术。但是,当将用于顺序程序的常规基于闭合的切片算法应用于并发的过程间程序时,由于干扰依赖性的不可传递性,该切片通常是不精确的。当一条语句使用在另一个同时执行的语句中定义的变量时,就会产生干扰依赖性。在这项研究中,我们提出了一种基于程序可达性图的全局依赖性分析方法,并构造了一个称为标记语句依赖性图(MSDG)的新颖依赖性图,其中每个顶点是程序状态和语句的2元组。与常规程序依赖图(其中顶点是语句)相反,MSDG中的依赖关系是可传递的。遍历MSDG时,将获得精确的切片。为了提高切片效率而不损失精度,我们的切片算法采用了混合策略。切片算法根据程序可及性图对包含线程之间交互语句的过程进行内联和切片,同时允许将其他过程切片为顺序程序。我们已经实现了我们的算法和其他三个代表性的切片算法,并对并发Java程序进行了实证研究。实验结果表明,与其他算法相比,我们的算法能计算出更精确的切片。使用部分有效减少技术,该技术可有效减小程序可及性图的大小而不会降低精度,因此对我们的算法进行了优化,从而在某种程度上提高了其性能。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号