The program dependence graph in a software development environment
- 25 April 1984
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGSOFT Software Engineering Notes
- Vol. 9 (3) , 177-184
- https://doi.org/10.1145/390010.808263
Abstract
The internal program representation chosen for a software development environment plays a critical role in the nature of that environment. A form should facilitate implementation and contribute to the responsiveness of the environment to the user. The program dependence graph (PDG) may be a suitable internal form. It allows programs to be sliced in linear time for debugging and for use by language-directed editors. The slices obtained are more accurate than those obtained with existing methods because I/O is accounted for correctly and irrelevant statements on multi-statement lines are not displayed. The PDG may be interpreted in a data driven fashion or may have highly optimized (including vectorized) code produced from it. It is amenable to incremental data flow analysis, improving response time to the user in an interactive environment and facilitating debugging through data flow anomaly detection. It may also offer a good basis for software complexity metrics, adding to the completeness of an environment based on it.This publication has 20 references indexed in Scilit:
- A hierarchical basis for reordering transformationsPublished by Association for Computing Machinery (ACM) ,1984
- A Program Development ToolIBM Journal of Research and Development, 1984
- Summarizing graphs by regular expressionsPublished by Association for Computing Machinery (ACM) ,1983
- Conversion of control dependence to data dependencePublished by Association for Computing Machinery (ACM) ,1983
- Incremental data flow analysisPublished by Association for Computing Machinery (ACM) ,1983
- Programmers use slices when debuggingCommunications of the ACM, 1982
- Symbolic Debugging of Optimized CodeACM Transactions on Programming Languages and Systems, 1982
- Contemporary software development environmentsCommunications of the ACM, 1982
- Combining data flow and control flow computingThe Computer Journal, 1982
- A Complexity MeasureIEEE Transactions on Software Engineering, 1976