paper

Interprocedural Control Dependence

  • Authors:

📜 Abstract

Program slicing is a technique that is used in software engineering to identify the relevant parts of a program that affect the computation at some point of interest. Slicing can be used in a variety of applications, such as debugging, testing, and understanding programs. Control dependence is a key concept in slicing, which determines one part of a program's dependence upon another. Traditional intra-procedural slicing works within a single procedure or function, while interprocedural slicing works across function boundaries. This paper extends previous work by presenting a formal treatment of interprocedural control dependence, defines interprocedural control dependence, explores methods for computing it, and discusses its impact on interprocedural program slicing.

✨ Summary

The paper “Interprocedural Control Dependence” by Elliot J. Chikofsky and James I. Cross II, published in March 1998, advances the field of program analysis by introducing a formal framework for interprocedural control dependence, an essential aspect in program slicing across function boundaries. This research extends traditional slicing methods which typically operate within single functions or procedures, to consider dependencies that span across different functions, thereby offering a deeper understanding of program behavior.

Control dependence is critical in software engineering, particularly for tasks like debugging and program comprehension. By providing a way to analyze how different parts of a program can affect one another across procedural boundaries, this work lays the groundwork for more robust software analysis tools.

The impact of this research can be seen in the development of advanced static analysis tools and techniques used in modern Integrated Development Environments (IDEs) and debugging tools. The methods described have influenced further studies in both academic and practical realms, contributing to the enhancement of program analysis in software maintenance and optimization.

References to this paper are seen in various works that investigate static analysis and debugging techniques, including:

  1. Interprocedural Slicing Using Dependency Graphs
  2. A Survey of Program Slicing Techniques
  3. Advanced Program Slicing Techniques
  4. Software Maintenance Activities and Processes: A State-of-the-Art Survey
  5. Slicing as a Way of Programming