TY - GEN
T1 - Parametric and termination-sensitive control dependence
AU - Chen, Feng
AU - Roşu, Grigore
PY - 2006
Y1 - 2006
N2 - 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.
AB - 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.
UR - http://www.scopus.com/inward/record.url?scp=33749872465&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=33749872465&partnerID=8YFLogxK
U2 - 10.1007/11823230_25
DO - 10.1007/11823230_25
M3 - Conference contribution
AN - SCOPUS:33749872465
SN - 3540377565
SN - 9783540377566
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 387
EP - 404
BT - Static Analysis - 13th International Symposium, SAS 2006, Proceedings
PB - Springer
T2 - 13th International Symposium on Static Analysis, SAS 2006
Y2 - 29 August 2006 through 31 August 2006
ER -