Abstract
Program slicing is a technique to decompose programs depending on control flow and data flow amongst several lines of code in a program. Conditioned slicing is a generalization of static slicing and dynamic slicing. A variable, the desired program point, and a condition of interest form a slicing criterion for conditioned slicing. This paper proposes an approach to calculate conditioned slices for programs containing multiple procedures. The approach is termed Node-Marking Conditioned Slicing (NMCS) algorithm. In this approach, first and foremost step is to build an intermediate symbolization of a given program code and the next step is to develop an algorithm for finding out conditioned slices. The dependence graph, termed System Dependence Graph (SDG), is used to symbolize intermediate presentation. After constructing SDG, the NMCS algorithm chooses nodes that satisfy a given condition by the process of marking and unmarking. The algorithm also finds out conditioned slices for every variable at every statement during the process. NMCS algorithm employs a stack to save call context of a method. Few edges in SDG are labeled to identify the statement that calls a method. The proposed algorithm is implemented, and its performance is tested with several case study projects.
Highlights
IntroductionProgram slicing is a decomposition technique utilized to decompose programs depending on control flow and data flow amongst several lines of code in a program code
Program slicing is a technique to decompose programs depending on control flow and data flow amongst several lines of code in a program
Program slicing is a decomposition technique utilized to decompose programs depending on control flow and data flow amongst several lines of code in a program code
Summary
Program slicing is a decomposition technique utilized to decompose programs depending on control flow and data flow amongst several lines of code in a program code. It is a kind of program analysis technique. It is said to be static when it extracts all statements from a program code w.r.t. a slicing criterion regardless input to program (Weiser, 1981). It is said to be dynamic when all statements from a program are extracted w.r.t. a slicing criterion for a specific input to program code (Korel & Laski, 1988). Details of program representations can be discovered in (Binkley & Gallagher, 1996; Horwitz et al, 1990; Mohapatra, 2005)
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have