Results 1 
4 of
4
Lineartime Subtransitive Control Flow Analysis
, 1997
"... We present a lineartime algorithm for boundedtype programs that builds a directed graph whose transitive closure gives exactly the results of the standard (cubictime) ControlFlow Analysis (CFA) algorithm. Our algorithm can be used to list all functions calls from all call sites in (optimal) quadr ..."
Abstract

Cited by 42 (1 self)
 Add to MetaCart
We present a lineartime algorithm for boundedtype programs that builds a directed graph whose transitive closure gives exactly the results of the standard (cubictime) ControlFlow Analysis (CFA) algorithm. Our algorithm can be used to list all functions calls from all call sites in (optimal) quadratic time. More importantly, it can be used to give lineartime algorithms for CFAconsuming applications such as: ffl effects analysis: find the sideeffecting expressions in a program. ffl klimited CFA: for each callsite, list the functions if there are only a few of them ( k) and otherwise output "many". ffl calledonce analysis: identify all functions called from only one callsite. 1 Introduction The controlflow graph of a program plays a central role in compilation  it identifies the block and loop structure in a program, a prerequisite for many code optimizations. For firstorder languages, this graph can be directly constructed from a program because information about flow of ...
Interprocedural Analyses: A Comparison
 Journal of Logic Programming (JLP
, 1999
"... We present a framework for program analysis of languages with procedures which is general enough to allow for a comparison of various approaches to interprocedural analysis. Our framework is based on a smallstep operational semantics and subsumes both frameworks for imperative and for logic languag ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
We present a framework for program analysis of languages with procedures which is general enough to allow for a comparison of various approaches to interprocedural analysis. Our framework is based on a smallstep operational semantics and subsumes both frameworks for imperative and for logic languages. We consider reachability analysis, that is, the problem of approximating the sets of program states reaching program points. We use our framework in order to clarify the impact of several independent design decisions on the precision of the analysis. Thus, we compare intraprocedural forward accumulation with intraprocedural backward accumulation. Furthermore, we consider both relational and functional approaches. While for relational analysis the accumulation strategy makes no difference in precision, we prove for functional analysis that forward accumulation may lose precision against backward accumulation. Concerning the relative precision of relational analyses and corresponding funct...
ControlFlow Analysis for ML in Linear Time
 In International Conference on Functional Programming (ICFP
, 1996
"... Standard controlflow analysis (often called 0CFA) is thought to be a cubic time problem  the standard algorithm for it is cubic time and the conventional wisdom is that this algorithm cannot be improved because of its strong connections with dynamic transitive closure. This algorithm is even cu ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
Standard controlflow analysis (often called 0CFA) is thought to be a cubic time problem  the standard algorithm for it is cubic time and the conventional wisdom is that this algorithm cannot be improved because of its strong connections with dynamic transitive closure. This algorithm is even cubic if we restrict attention to ML programs whose types have bounded size. We present a new algorithm for standard controlflow analysis that has linear time complexity for ML programs whose types have bounded size. This algorithm is simple, incremental, demanddriven and easily adapted to polyvariant usage. Early experimental evidence suggests that this new algorithm is significantly faster than the standard algorithm. (This paper contains 4876 words (according to delatex).) 1 Introduction The controlflow graph of a program plays a central role in compilation  it identifies the block and loop structure in a program, a prerequisite for many code optimizations. For firstorder languages, ...
ControlFlow Analysis of Function Calls and Returns by Abstract Interpretation
, 2012
"... Abstract interpretation techniques are used to derive a controlflow analysis for a simple higherorder functional language. The analysis approximates the interprocedural controlflow of both function calls and returns in the presence environment, the analysis computes for each expression an abstrac ..."
Abstract
 Add to MetaCart
Abstract interpretation techniques are used to derive a controlflow analysis for a simple higherorder functional language. The analysis approximates the interprocedural controlflow of both function calls and returns in the presence environment, the analysis computes for each expression an abstract callstack, effectively approximating where function calls return. The analysis is systematically machine of Flanagan et al. using a series of Galois connections. We prove that the analysis is equivalent to an analysis obtained by first transforming the program into continuationpassing style and then performing control flow analysis of the transfored program. We then show how the analysis induces an equivalent constraintbased formulation, thereby providing a rational reconstruction of a constraintbased CFA from abstract interpretation principles. 1.