Softpanorama
(slightly skeptical) Open Source Software Educational Society

May the source be with you, but remember the KISS principle ;-)

Softpanorama Search

Program Slicing as Decomplation/Program Reconstruction Technique

News Recommended Books Recommended Links Compilation Decompilation  The decomplation of control flow
Peephole refactoring Program understanding   History Humor Etc

The concept of program slicing was introduced by Mark Weiser (Computer Science Department University of Maryland College Park, MD 20742). In his paper he noted:

Program slicing is a method used by experienced computer programmers for abstracting from pro- grams. Starting from a subset of a program's behavior, slicing reduces that program to a  minimal form which still produces that behavior. The reduced program, called a  "slice", is an independent program guaranteed to faithfully represent the original program within the domain of the specified subset of behavior. Finding  a slice is in general unsolvable. A dataflow algorithm is presented for approximating slices when the behavior subset is specified as the values of a set of variables at a statement. Experimental evidence is presented that these  slices are used by programmers during debugging. Experience with two automatic  slicing tools is summarized. New measures of program complexity are suggested based on the organization of a program's slices.

Slicing is applied to programs after they are written, and is therefore useful  reconstruction of the logic of the program. Slicing starts with the observation that these are times when only a portion of a program's produces a subset of  program behavior that needs to be understood, improved or replaced. In these cases, a programmer starts from the program behavior and proceeds to find and modify the corresponding portions of program code. Code not having to do with behavior of interest is ignored.

A programmer maintaining a large, unfamiliar program would almost have to use this behavior- first approach to the code. Understanding an entire system to change only a small piece would take too much time. Since most program maintenance is done by persons other than the program designers, and since 67% of programming effort goes into maintenance (Zelkowitz, Shaw, and Gannon 1979), decomposing programs by behavior must be a common occurrence. Automatic slicing requires that behavior be specified in a certain form. If the behavior of interest can be expressed as the values of some sets of variables at some set oi statements, then this specification is said to be a criterion. Dataflow analysis (Hecht 1977] can find all the program code which might have influenced the specified behavior, and this code is called a slice of the program. A slice is itself an executable program, whose behavior must be identical to the specified subset of the original program's behavior. Figure 1 gives examples of some slicing criteria and their corresponding slices.  There are usually many different slices for a given program and slicing criterion, depending on how minimal a slice is desired. The issue of minimality  is discussed further below. There is always at least one slice--the program  itself. The interesting slices are the ones which, compared to the original program, are significantly smaller and simpler.

 

Dr. Nikolai Bezroukov


Notes:
  • This is a Spartan WHYFF (We Help You For Free) site written by people for whom English is not a native language. Some amount of grammar and spelling errors should be expected.
  • The site contain some broken links as it develops like a living tree... Please try to use Google, Open directory, etc. to find a replacement link (see HOWTO search the WEB for details). We would appreciate if you can mail us a correct link.
Google Search
Open directory

Research Index


Old News ;-)

IBM Program Analysis, Transformation and Visualization Group

[PPT] Static Analysis for Software-Engineering Tools: Problems and ...

File Format: Microsoft Powerpoint 97 - View as HTML
Static Analysis for Software-Engineering Tools. Thomas Reps ... single-target MOMP [Sagiv,Reps,Horwitz 96]; magic-sets transformation [Reps 94] ...

[July 17, 1999] Thomas W. Reps's Home Page

[July 7, 1999] Program Slicing -- [updated link -- page was moved] nice page that is actively maintained by Jens Krinke (jkrinke@gmx.de)

Program Slicing Internet Resources

Slicing References

Home page of the Wisconsin Program-Slicing Project 

Recommended Links


In case of broken links please try to use Google search. If you find the page please notify us about new location
Google     

In Memoriam Mark Weiser -- pioneer of program slicing


Copyright © 1996-2009 by Dr. Nikolai Bezroukov. www.softpanorama.org was created as a service to the UN Sustainable Development Networking Programme (SDNP) in the author free time. Submit comments This document is an industrial compilation designed and created exclusively for educational use and is placed under the copyright of the Open Content License(OPL). Site uses AdSense so you need to be aware of Google privacy policy. Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.

Disclaimer:

Last modified: August 10, 2009