Dependence Condition Graph for Semantics-based Abstract Program Slicing

Agostino Cortesi, Halder, Raju. Dependence Condition Graph for Semantics-based Abstract Program Slicing. In Proceedings of the 10th International Workshop on Language Descriptions Tools and Applications (LDTA'10) - satellite event of European Joint Conferences on Theory and Practice of Software (ETAPS'10). ACM Press, Paphos, Cyprus, 27-28 March 2010. [doi]

Abstract

Many slicing techniques have been proposed based on the traditional Program Dependence Graph (PDG) representation. In traditional PDGs, the notion of data dependency between statements is based on syntactic presence of a variable in the definition of another variable or in a conditional expression. Mastroeni and Zanardini introduced semantics-based data dependency both at concrete and abstract domain. This semantics-based data dependency is computed at expression level over all possible (abstract) states appearing at program points. In this paper, we strictly improve this approach by (i) considering semantic relevancy of statements (not only expressions), and (ii) adopting conditional dependency. This allows us to transform the semantics-based (abstract) PDG into a semantics-based (abstract) Dependence Condition Graph (DCG) that enables to identify the conditions for dependence between program points. The resulting program slicing algorithm designed this way is strictly more accurate than the Mastroeni and Zanardini’s one.