A new foundation for control dependence and slicing for modern program structures

69Citations
Citations of this article
27Readers
Mendeley users who have this article in their library.

Abstract

The notion of control dependence underlies many program analysis and transformation techniques. Despite being widely used, existing definitions and approaches to calculating control dependence are difficult to apply directly to modern program structures because these make substantial use of exception processing and increasingly support reactive systems designed to run indefinitely. This article revisits foundational issues surrounding control dependence, and develops definitions and algorithms for computing several variations of control dependence that can be directly applied to modern program structures. To provide a foundation for slicing reactive systems, the article proposes a notion of slicing correctness based on weak bisimulation, and proves that some of these new definitions of control dependence generate slices that conform to this notion of correctness. This new framework of control dependence definitions, with corresponding correctness results, is even able to support programs with irreducible control flow graphs. Finally, a variety of properties show that the new definitions conservatively extend classic definitions. These new definitions and algorithms form the basis of the Indus Java slicer, a publicly available program slicer that has been implemented for full Java. © 2007 ACM.

Cite

CITATION STYLE

APA

Ranganath, V. P., Amtoft, T., Banerjee, A., Hatcliff, J., & Dwyer, M. B. (2007). A new foundation for control dependence and slicing for modern program structures. In ACM Transactions on Programming Languages and Systems (Vol. 29). https://doi.org/10.1145/1275497.1275502

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free