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)
Elimination algorithms for data flow analysis
ACM Computing Surveys (CSUR)
Introduction to algorithms
IEEE Transactions on Software Engineering
The use of program dependence graphs in software engineering
ICSE '92 Proceedings of the 14th 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
A fast algorithm for finding dominators in a flowgraph
ACM Transactions on Programming Languages and Systems (TOPLAS)
Certification of programs for secure information flow
Communications of the ACM
A program data flow analysis procedure
Communications of the ACM
Practical Methods for Proving Program Termination
CAV '02 Proceedings of the 14th International Conference on Computer Aided Verification
ICSE '81 Proceedings of the 5th international conference on Software engineering
A Survey of Program Slicing Techniques.
A Survey of Program Slicing Techniques.
Termination analysis of integer linear loops
CONCUR 2005 - Concurrency Theory
A new foundation for control-dependence and slicing for modern program structures
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
Slicing for modern program structures: a theory for eliminating irrelevant loops
Information Processing Letters
jPredictor: a predictive runtime analysis tool for java
Proceedings of the 30th international conference on Software engineering
Parametric and sliced causality
CAV'07 Proceedings of the 19th international conference on Computer aided verification
Runtime verification with the RV system
RV'10 Proceedings of the First international conference on Runtime verification
Hi-index | 0.00 |
A parametric approach to control dependence is presented, where the parameter is any prefix-invariant property on paths in the control-flow graph (CFG). Existing control dependencies, both direct and indirect, can be obtained as instances of the parametric framework for particular properties on paths. A novel control dependence relation, called termination-sensitive control dependence, is obtained also as an instance of the parametric framework. This control dependence is sensitive to the termination information of loops, which can be given via annotations. If all loops are annotated as terminating then it becomes the classic control dependence, while if all loops are annotated as non-terminating then it becomes the weak control dependence; since in practice some loops are terminating and others are not, termination-sensitive control dependence is expected to improve the precision of analysis tools using it. The unifying formal framework for direct and indirect control dependence suggests also, in a natural way, a unifying terminology for the various notions of control dependence, which is also proposed in this paper. Finally, a worst-case O(n2) algorithm to compute the indirect termination-sensitive control dependence for languages that allow only “structured” jumps (i.e., ones that do not jump into the middle of a different block), such as Java and C#, is given, avoiding the O(n3) complexity of the trivial algorithm calculating the transitive closure of the direct dependence.