System dependence graph construction for recursive programs
Panos E. Livadas, Stephen Croll · 2002
In a previous paper we demonstrated that a parse-tree-based system dependence graph (SDG) provides us with smaller and therefore more precise slices than a statement-based SDG. Furthermore, we described extensions to the SDG that were made to handle particular constructs found in ANSI C. In this paper, we describe a new method for the calculation of transitive dependences (in the presence of recursion) and therefore build a SDG that does not require calculation of the GMOD and GREF sets. Furthermore, this method does not require construction of a linkage grammar and its corresponding subordinate characteristic graphs. Additionally, we illustrate the versatility of the SDG as an internal program representation by briefly presenting a tool that we have developed that can perform interprocedural slicing, dicing, and ripple analysis in addition to other software engineering activities on programs written in a subset of ANSI C.>