The program dependence graph and its use in optimization
ACM Transactions on Programming Languages and Systems (TOPLAS)
The program dependence graph in static program testing
Information Processing Letters
Interprocedural slicing using dependence graphs
ACM Transactions on Programming Languages and Systems (TOPLAS)
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Efficiently computing static single assignment form and the control dependence graph
ACM Transactions on Programming Languages and Systems (TOPLAS)
Dynamic slicing in the presence of unconstrained pointers
TAV4 Proceedings of the symposium on Testing, analysis, and verification
Incremental program testing using program dependence graphs
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A Unified Interprocedural Program Representation for a Maintenance Environment
IEEE Transactions on Software Engineering
Automatic Generation of a Compact Test Suit
Proceedings of the IFIP 12th World Computer Congress on Algorithms, Software, Architecture - Information Processing '92, Volume 1 - Volume I
IEEE Transactions on Software Engineering
On slicing programs with jump statements
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
An extensible program representation for object-oriented software
ACM SIGPLAN Notices
Generating testing and analysis tools with Aria
ACM Transactions on Software Engineering and Methodology (TOSEM)
Automated construction of testing and analysis tools
ICSE '94 Proceedings of the 16th international conference on Software engineering
Evaluating explicitly context-sensitive program slicing
PASTE '01 Proceedings of the 2001 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
A System for Generating Reverse Engineering Tools: A Case Study of Software Modularisation
Automated Software Engineering
An overview of methods for dependence analysis of concurrent programs
ACM SIGPLAN Notices
Static Dependency Analysis for Concurrent Ada 95 Programs
Ada-Europe '02 Proceedings of the 7th Ada-Europe International Conference on Reliable Software Technologies
RIPPLES: Tool for Change in Legacy Software
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
A brief survey of program slicing
ACM SIGSOFT Software Engineering Notes
Aristotle: a system for development of program analysis based tools
ACM-SE 33 Proceedings of the 33rd annual on Southeast regional conference
An infrastructure to support interoperability in reverse engineering
Information and Software Technology
Detecting large number of infeasible paths through recognizing their patterns
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Remote attestation on program execution
Proceedings of the 3rd ACM workshop on Scalable trusted computing
Checking enforcement of integrity constraints in database applications based on code patterns
Journal of Systems and Software
Automated verification and testing of user-interactive undo features in database applications
Software Testing, Verification & Reliability
Intermediate representations in imperative compilers: A survey
ACM Computing Surveys (CSUR)
Fast condensation of the program dependence graph
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Hi-index | 0.00 |
We present a new technique for constructing a program dependence graph that contains a program's control flow, along with the usual control and data dependence information. Our algorithm constructs a program dependence graph while the program is being parsed. For programs containing only structured transfers of control, our algorithm does not require information provided by the control flow graph or post dominator tree and therefore obviates the construction of these auxiliary graphs. For programs containing explicit transfers of control, our algorithm adjusts the partial control dependence subgraph, constructed during the parse, to incorporate exact control dependence information. There are several advantages to our approach. For many programs, our algorithm may result in substantial savings in time and memory since our construction of the program dependence graph does not require the auxiliary graph. Furthermore, since we incorporate control and data flow as well as exact control dependence information into the program dependence graph, our graph has a wide range of applicability. We have implemented our algorithm by incorporating it into the Free Software Foundation's GNU C compiler; currently we are performing experiments that compare our technique with the traditional approach.