一种基于逆向程序流程序切片算法.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种基于逆向程序流程序切片算法

一种基于逆向程序流的程序切片算法    (南京大学 计算机系 计算机软件新技术国家重点实验室, 南京 210093)   ??   摘 要:传统的程序切片方法一般基于程序依赖图(PDG)和系统依赖图(SDG)的可达性算法,但是在建立PDG和SDG的过程中会计算一些与切片无关的数据依赖,造成时空资源的浪费及切片效率的降低。提出了一种基于程序逆向流的切片算法,它事先建立逆向程序流,再从切片点开始沿逆向程序流扫描程序以获得程序切片,只计算与切片相关的数据依赖,从而提高了切片计算的时空效率。通过实验发现该算法具有一定的可行性和实用性。本算法适用于包括Fortran、C等编程语言在内的命令式程序的切片生成。   ?す丶?词:程序切片; 程序逆向流; 谓词依赖集; 过程内切片; 过程间切片   ?ぶ型挤掷嗪牛?TP311.5 文献标志码:A    文章编号:1001?B3695(2009)03?B0920?B03   ??   Algorithm of program slicing based on reverse program flow   ??   BAI Wenke, YANG Xianchun, XU Manwu   ??   (State Key Laboratory for Novel Software Technology, Dept. of Computer Science, Nanjing University, Nanjing 210093, China)   ??   Abstract:The traditional method of program slicing was based on reachability algorithm of program dependence graph(PDG) and system dependence graph(SDG). However, to construct PDG and SDG, some data dependenced which were irrelevant to the slicing may be computed. The redundant computing wasted time and memory, and reduced slicing efficiency. To address this problem, this paper presented a slicing algorithm based on reverse program flow. It firstly constructed reverse flow of the program, then scaned the program along reverse flow from the slicing point, and only computed the data dependences which were relevant to slicing. So it improved slicing efficiency. The result of experiment shows this algorithm is feasible and practical. This algorithm can be used for generating slicing of imperative programs, such as Fortran and C program.   ??Key words:program slicing; reverse program flow; predicate dependence set (PDS); intraprocedural slicing; interprocedural slicing   ?お?   0 引言??   程序切片是一种重要的程序分析理解方法,它广泛应用于程序调试、测试、软件维护、软件度量、逆向工程和再工程等领域。其概念最早由Mark Weiser[1]提出,定义为:对程序P、程序点l和变量x,其切片是指可能影响变量x在l点状态的所有语句和谓词的集合,记做slice(l, x)。其中〈l,x〉为一个切片标准。程序切片可以缩小考察的程序范围,有利于程序员对错误的查找和定位。K.J.Ottenstein等人[2]提出了通过遍历程序依赖图(PDG)来获得过程内切片的方法。后来Horwitz等人[3]通过把PDG扩展为系统依赖图(SDG)以得到过程间切片。由于顺序程序中依赖关系具有传递性,基于程序依赖图的函数内切片算法是一个简单的图的可达性问题。在系统依赖图上,函数间

文档评论(0)

erterye + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档