Tukra: An Abstract Program Slicing Tool

We introduce Tukra, a tool that allows the practical evaluation of abstract program slicing algorithms. The tool exploits the notions of statement relevancy, semantic data dependences and conditional dependences. The combination of these three notions allows Tukra to refine traditional syntax-based program dependence graphs, generating more accurate slices. We provide the architecture of the tool, some snapshots describing how it works, and some preliminary experimental results giving evidence of the accuracy improvements it supports.

[1]  Sukriti Bhattacharya,et al.  Property driven program slicing and watermarking in the abstract interpretation framework , 2011 .

[2]  Isabella Mastroeni,et al.  Abstract Program Slicing: From Theory towards an Implementation , 2010, ICFEM.

[3]  Srihari Sukumaran,et al.  The dependence condition graph: Precise conditions for dependence between program points , 2010, Comput. Lang. Syst. Struct..

[4]  Agostino Cortesi,et al.  Dependence condition graph for semantics-based abstract program slicing , 2010, LDTA.

[5]  Damiano Zanardini,et al.  The Semantics of Abstract Program Slicing , 2008, 2008 Eighth IEEE International Working Conference on Source Code Analysis and Manipulation.

[6]  Damiano Zanardini,et al.  Data dependencies and program slicing: from syntax to abstract semantics , 2008, PEPM '08.

[7]  Mark Harman,et al.  A formalisation of the relationship between forms of program slicing , 2006, Sci. Comput. Program..

[8]  Insup Lee,et al.  Abstract slicing: a new approach to program slicing based on abstract interpretation and model checking , 2005, Fifth IEEE International Workshop on Source Code Analysis and Manipulation (SCAM'05).

[9]  Gregg Rothermel,et al.  System-dependence-graph-based slicing of programs with arbitrary interprocedural control flow , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[10]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[11]  V. Sarkar,et al.  Automatic partitioning of a program dependence graph into parallel tasks , 1991, IBM J. Res. Dev..

[12]  Joseph Robert Horgan,et al.  Dynamic program slicing , 1990, PLDI '90.

[13]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1990, TOPL.