作者投稿和查稿 主编审稿 专家审稿 编委审稿 远程编辑

计算机工程 ›› 2006, Vol. 32 ›› Issue (14): 14-16,4. doi: 10.3969/j.issn.1000-3428.2006.14.005

• 博士论文 • 上一篇    下一篇

一种改进的并发程序静态切片算法

肖健宇1,2;张德运1;陈海诠1;董 皓1   

  1. 1. 西安交通大学电子与信息工程学院,西安710049;2. 邵阳学院计算机系,邵阳422000
  • 收稿日期:1900-01-01 修回日期:1900-01-01 出版日期:2006-07-20 发布日期:2006-07-20

An Improved Algorithm for Static Slicing of Concurrent Programs

XIAO Jianyu1,2;ZHANG Deyun1; CHEN Haiquan1;DONG Hao1   

  1. 1. School of Electronics and Information Engineering, Xi’an Jiaotong University, Xi’an 710049;2. Department of Computer Science, Shaoyang University, Shaoyang 422000
  • Received:1900-01-01 Revised:1900-01-01 Online:2006-07-20 Published:2006-07-20

摘要: 分析了Krinke切片算法对循环体内嵌套有线程的程序结构会产生切片不精确的现象,认为其原因是该算法对线程间数据依赖的定义过于粗糙,且对程序行为约束不够。该文提出一种新算法,在并发程序内部表示中,增加跨线程边界循环-承载数据依赖,并引入区域化执行证据约束程序行为。实例研究表明,该算法克服了Krinke算法的不精确现象。

关键词: 静态程序切片, 并发程序, 切片算法, 程序依赖图, 执行证据

Abstract: This paper proposes a algorithm for static slicing of concurrent programs. Based on the analysis of the fact that Krinke’s slicing algorithm produces imprecise program slice for the program structure which has loops embedded with one or more threads, a conclusion is drawn that the reason for the impreciseness is that Krinke’s data structure which threads program dependence graph and has over coarse definitions of data dependence relations between threads, The constraint puts on the execution path in concurrent program is too loose. An improved algorithm is proposed which added a new kind of data dependence relation between threads-loop carries data dependence crossing thread boundaries and introduces a new concept of regioned execution witness to further constrain the execution path. Examples show that the improved slicing algorithm could restrain the impreciseness of Krinke’s.

Key words: Static slicing of programs, Concurrent programs, Slicing algorithm, Program dependence graph, Execution witness

中图分类号: