计算机科学与探索 ›› 2012, Vol. 6 ›› Issue (3): 257-266.DOI: 10.3778/j.issn.1673-9418.2012.03.006

• 学术研究 • 上一篇    下一篇

并发程序切片原型系统的设计与实现

徐晓晶, 戚晓芳   

  1. 东南大学 计算机科学与工程学院, 南京 211189
  • 出版日期:2012-03-01 发布日期:2012-03-01

A Prototype Tool for Slicing Concurrent Programs

XU Xiaojing, QI Xiaofang   

  1. School of Computer Science and Engineering, Southeast University, Nanjing 211189, China
  • Online:2012-03-01 Published:2012-03-01

摘要: 并发程序切片是并发程序分析的一种重要手段。针对多线程共享变量通信机制, 在通过程序分析工具CodeSurfer获取程序基本信息的基础上构造程序可达图, 生成以程序状态和语句二元组为节点的并发程序依赖图, 实现了基于程序可达图的并发程序切片原型系统。初步实验结果表明, 与传统的切片方法相比, 采用基于程序可达图的并发程序切片方法, 可有效地解决依赖关系不可传递问题, 获得高精度的并发程序切片。

关键词: 并发程序, 原型系统, 依赖性分析, 程序切片

Abstract: Slicing is an important approach to analyzing and understanding concurrent programs. Based on the basic program information extracted with a program analyzing tool, CodeSurfer, this paper builds program reachability graph for multi-threaded programs with shared variables, then generates a novel dependence graph, which vertex is a 2-tuple composed of program state and statement, and implements a prototype tool for slicing concurrent programs. Preliminary experimental results show that the intransitivity problem of dependence relations can be solved and more precise slices are obtained efficiently by the proposed approach in contrast to traditional slicing approaches.

Key words: concurrent programs, prototype system, dependence analysis, program slicing