Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
The program dependence graph and its use in optimization
ACM Transactions on Programming Languages and Systems (TOPLAS)
Incremental data-flow analysis algorithms
ACM Transactions on Programming Languages and Systems (TOPLAS)
An Incremental Version of Iterative Data Flow Analysis
IEEE Transactions on Software Engineering
IEEE Transactions on Software Engineering
Efficiently computing static single assignment form and the control dependence graph
ACM Transactions on Programming Languages and Systems (TOPLAS)
A safe approximate algorithm for interprocedural aliasing
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
Efficient computation of interprocedural definition-use chains
ACM Transactions on Programming Languages and Systems (TOPLAS)
Context-sensitive interprocedural points-to analysis in the presence of function pointers
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Precise interprocedural dataflow analysis via graph reachability
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The design of whole-program analysis tools
Proceedings of the 18th international conference on Software engineering
A framework for generalized control dependence
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
Optimal control dependence computation and the Roman chariots problem
ACM Transactions on Programming Languages and Systems (TOPLAS)
Experiments of the effectiveness of dataflow- and controlflow-based test adequacy criteria
ICSE '94 Proceedings of the 16th international conference on Software engineering
Interprocedural Def-Use Associations for C Systems with Single Level Pointers
IEEE Transactions on Software Engineering
Using Dependence Analysis to Support the Software Maintenance Process
ICSM '93 Proceedings of the Conference on Software Maintenance
Reuse-driven interprocedural slicing
Proceedings of the 20th international conference on Software engineering
System-dependence-graph-based slicing of programs with arbitrary interprocedural control flow
Proceedings of the 21st international conference on Software engineering
Efficient coverage testing using global dominator graphs
Proceedings of the 1999 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Analysis and Testing of Programs with Exception Handling Constructs
IEEE Transactions on Software Engineering
Interprocedural control dependence
ACM Transactions on Software Engineering and Methodology (TOSEM)
Improved method to generate path-wise test data
Journal of Computer Science and Technology
Flow Analysis to Detect Blocked Statements
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
A brief survey of program slicing
ACM SIGSOFT Software Engineering Notes
A context-sensitive structural heuristic for guided search model checking
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Interprocedural slicing of multithreaded programs with applications to Java
ACM Transactions on Programming Languages and Systems (TOPLAS)
Decomposition of Task-Level Concurrency on C Programs Applied to the Design of Multiprocessor SoC
IEICE Transactions on Fundamentals of Electronics, Communications and Computer Sciences
The MEB and CEB Static Analysis for CSP Specifications
Logic-Based Program Synthesis and Transformation
A compiler optimization to reduce soft errors in register files
Proceedings of the 2009 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems
Analysis and visualization of behavioral dependencies among distributed objects based on UML models
MoDELS'06 Proceedings of the 9th international conference on Model Driven Engineering Languages and Systems
Reliability improvement based on prioritization of source code
ICDCIT'10 Proceedings of the 6th international conference on Distributed Computing and Internet Technology
Static slicing of explicitly synchronized languages
Information and Computation
Redundant state detection for dynamic symbolic execution
USENIX ATC'13 Proceedings of the 2013 USENIX conference on Annual Technical Conference
Software-based register file vulnerability reduction for embedded processors
ACM Transactions on Embedded Computing Systems (TECS) - Special Section on ESTIMedia'10
Hi-index | 0.00 |
Program dependence information is useful for a variety of software testing and maintenance tasks. Properly defined, control and data dependencies can be used to identify semantic dependencies. To function effectively on whole programs, tools that utilize dependence information require information about interprocedural dependencies: dependencies that exist because of interactions among procedures. Many techniques for computing data and control dependencies exist; however, in our search of the literature we find only one attempt to define and compute interprocedural control dependencies. Unfortunately, that approach can omit important control dependencies, and incorrectly identifies control dependencies for a large class of programs. This paper presents a definition of interprocedural control dependence that supports the relationship of control and data dependence to semantic dependence, an efficient algorithm for calculating interprocedural control dependencies, and empirical results obtained by our implementation of the algorithm.