java程序静态切片,一种切片JAVA程序的层次模型

本文介绍了一种针对JAVA程序的层次切片模型,该模型结合了面向对象特性和逐步求精算法。首先,通过依赖关系分析在包级别删除无关包,然后逐级深入到类、方法和语句层面进行切片,有效处理了多态性问题。这种方法减少了计算复杂度,提高了切片效率。文章旨在解决面向对象程序切片的挑战,并打破传统依赖图或数据流方程的程序切片模式。
摘要由CSDN通过智能技术生成

N~ember 2004,Vo1.19No.6,PP.848—858

Model for Slicing JAVA Programs Hierarchicaly

J.Comput.S .& Technol

Bi—Xin Li‘’。,Xiao—Cong Fan ,Jun Pan。,and Jian—Jun Zhao

Department of Computer Science&Enginering,Southeast University,Nanjing 210096,P.R.China

2School of Information Science and Technology,PENNSTATE,University Park,PA 16802,U.S.A.

0CW I

, Kruislaan 413 1098 SJ Amsterdam,Netherlands

Department of Computer Science and Engineering,FIT,Fukuoka 811—02,Japan

E-nmil:Bx.Li@SeU.edu.cn;zfan@ist.psu.edu;Jun.Pang~cwi.hi;zhao@cs.fit.ac.Jp

KeywGcds Hierarchical model,program slicing,JAVA,stepwise Mgofithm,JATO.

一 种切片JAVA程序的层次模型

程序切片的初始概念出现在1979年Mark Weiser的博士论文中。从此其他研究者们也提出一些

程序切片,而这些程序切片的概念和计算方法与Weiser的比起来略有不同。一个重要的区别就是出

现了动态和静态之分,即前者考虑程序的特定输入,而后者不需要。直到2O世纪9O年代,由于面向

对象程序设计语言的兴起,那些基于传统的结构化语言的程序切片概念和计算方法又不能直接用于

面向对象的代码分析,所以研究者们又开始了切片面向对象程序的研究。从研究的方式来看,大家基

本上采用的是这样两种思路:一种思路是,在现有的程序切片概念和计算方法中引入面向对象概念,

使之能够处理面向对象的特征(如继承,多态等);另一种思路是引入新的基于面向对象的程序切片方

法。本文采用的策略是两者的结合——在局部层次上采用的计算方法是适合面向对象程序的、基于

依赖图的图形可达性算法;在总体上却是采用新引入的逐步求精计算方法。也就是基于JAvA程序

的内在层次特征,建立一种新的切片模型——层次切片模型。层次切片的主要思想就是按逐步求精

的方法,从包级到类级到方法级再到语句级来切片JAVA程序。具体地讲就是,为了切片JAVA程

序,我们先考虑包级信息,根据依赖关系删除那些与切片准则无关的包,只考虑与切片准则有关的包,

这样可以减少下一阶段需要考虑的包的个数,从而减少工作量和计算的复杂度。按照同样的思路,我

们可以处理类级,方法级,直到语句级的切片。这种方法的一个明显好处就是,在处理静态切片方面

很好地解决了多态性的问题(如文中例子),这是因为我们在处理类级切片时就已经删除了那些由于

继承关系而造成多态性的无关的类。本文的动机之一就是为了解决具有面向对象特征的程序切片问

题。动机之二是想突破传统的基于依赖图或数据流方程的程序切片模式,建立基于程序内在特征的

层次切片模型。本文的切片方法从模型和切片算法上都有突破。模型上采用的是层次切片模型(不

同于传统的依赖图或数据流方程),算法采用逐步求精和图形可达性相结合的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值