Conditioned Slicing of Interprocedural Programs

Conditioned Slicing of Interprocedural Programs

Madhusmita Sahu
Copyright: © 2019 |Volume: 6 |Issue: 1 |Pages: 18
ISSN: 2334-4598|EISSN: 2334-4601|EISBN13: 9781522568445|DOI: 10.4018/IJRSDA.2019010103
Cite Article Cite Article

MLA

Sahu, Madhusmita. "Conditioned Slicing of Interprocedural Programs." IJRSDA vol.6, no.1 2019: pp.43-60. http://doi.org/10.4018/IJRSDA.2019010103

APA

Sahu, M. (2019). Conditioned Slicing of Interprocedural Programs. International Journal of Rough Sets and Data Analysis (IJRSDA), 6(1), 43-60. http://doi.org/10.4018/IJRSDA.2019010103

Chicago

Sahu, Madhusmita. "Conditioned Slicing of Interprocedural Programs," International Journal of Rough Sets and Data Analysis (IJRSDA) 6, no.1: 43-60. http://doi.org/10.4018/IJRSDA.2019010103

Export Reference

Mendeley
Favorite Full-Issue Download

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.