Font Size: a A A

A Technique Of Program Slicing Based On JAVA

Posted on:2005-08-08Degree:MasterType:Thesis
Country:ChinaCandidate:H Y PanFull Text:PDF
GTID:2168360125950569Subject:Computer application technology
Abstract/Summary:PDF Full Text Request
Program slicing is a technology of extracting programs; it works in each field of program analysis and understanding and software engineering project. Since it was proposed in 1979, drawing people's extensive concern, the technology has been already very mature at present. Especially static slicing and dynamic slicing, whose algorithms have already been mature,. The algorithms mainly include dataflow algorithm that Mark Weiser puts forward, and K.J.Ottendtein, L.M. Ottendtein and Horwitz's picture reach ability algorithm based on system dependence graph information flow algorithm that Bergeretti puts forward, etc... Along with static slicing becoming mature, people begin to develop new fields to study: at first, aiming at algorithms of different language, such as the picture showing form to C ++ language of Larsen and Harrold, and at JAVA system special mechanism method of Kovacs et al and Zhao; secondly, enlarging concept of slicing, which makes conditioned slicing and amorphous slicing possible, etc. With the wide application of object oriented language, people begin to study the slicing for O.O. language, but there are some special mechanisms such as inherit, polymorphism, dynamic binding in O.O. language, which traditional methods can't solve, and people have proposed some new methods to solve these problems. According to the present research state, some technologies have been put forward aiming at OO language, but relative tools are still few. The slicing for Java also belongs to the beginning stage. Based on such a situation, we decide to develop a slicing system for Java, which can deal with various kinds of special mechanisms of Java with high efficiency. Conditioned slicing is a newly put-forward concept. As a kind of totally static extraction static slicing considers no input, so the results of this are inexact, while the dynamic slicing considers all inputs, which can get the only results under the condition of a certain input. People find both of these are very extreme, and usually people require extracting results under special conditions, which make conditioned slicing necessary. Conditioned slicing lies between static slicing and dynamic slicing and has become future focus already. Because it isn't a long time since this concept has been put forward, it is immature yet, especially when it is concerning about some special languages. Then we integrate conditioned slicing into the slicing for JAVA, hoping this good beginning, and in the following research, we try to perfect the conditioned slicing algorithm in this system to maturate conditioned slicing algorithm. This system can be divided into two parts: first, static slicing of Java, where the algorithm based on JAVA system dependence graph (JSDG) is adopted; second, partial dealing of conditioned slicing.Since the results of static slicing can be used in conditioned slicing, we can deal with separately the two parts above. In the course of static slicing of JAVA, we deal with basic types in Java and most mechanisms, including following major works: Carry on pretreatment aiming at source program and get each mark of sentences of source program, which is the bridge connecting JSDG and source program. Build JSDG to show structure of Java, mechanism through each side and node, and at the end of this course we get figure expression of the source program. Carry on slicing algorithm according to the user input slicing criterion to receive slicing results based on the JSDG.Turn the result of picture into the result of program. Second part is conditioned slicing about which we adopt the method of integration of partial evaluation technology and symbolic execution. The detailed steps include: first, some program conditions collections are given by users, which restrain the fetching value range of some variables; secondly, we get those unknown according to these variables we already know; thirdly, judge the expression formula in Java according to gotten variable range value, and keep those we can judge,...
Keywords/Search Tags:Technique
PDF Full Text Request
Related items