2010
DOI: 10.1007/978-3-642-11957-6_30
|View full text |Cite
|
Sign up to set email alerts
|

CFA2: A Context-Free Approach to Control-Flow Analysis

Abstract: Abstract. In a functional language, the dominant control-flow mechanism is function call and return. Most higher-order flow analyses, including k -CFA, do not handle call and return well: they remember only a bounded number of pending calls because they approximate programs with control-flow graphs. Call/return mismatch introduces precisiondegrading spurious control-flow paths and increases the analysis time.We describe CFA2, the first flow analysis with precise call/return matching in the presence of higher-o… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
11
0

Year Published

2011
2011
2020
2020

Publication Types

Select...
4
4

Relationship

0
8

Authors

Journals

citations
Cited by 41 publications
(11 citation statements)
references
References 24 publications
(22 reference statements)
0
11
0
Order By: Relevance
“…Pushdown Control-Flow Analysis. There have been significant efforts to achieve precise call/return matching based on small-step abstract abstract machines [Earl et al 2012;Gilray et al 2016b;Johnson and Van Horn 2014;Vardoulakis and Shivers 2010].…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…Pushdown Control-Flow Analysis. There have been significant efforts to achieve precise call/return matching based on small-step abstract abstract machines [Earl et al 2012;Gilray et al 2016b;Johnson and Van Horn 2014;Vardoulakis and Shivers 2010].…”
Section: Related Workmentioning
confidence: 99%
“…CFA2 is the first solution that solves the return-flow problem [Vardoulakis and Shivers 2010], but CFA2 has several limitations: it only works on continuation-passing style programs, and does not support polyvariant analysis, in addition to having an exponential time complexity. Pushdown control-flow analysis (PDCFA) is a mechanism which maintains this precision through the use of a Dyke state graph representing all possible stacks contained within the unbounded-stack machine [Earl et al 2010[Earl et al , 2012.…”
Section: Related Workmentioning
confidence: 99%
“…js 0 is a higher‐order, functional, and object‐oriented language. Because function call and return is the dominant control flow pattern in higher‐order, functional programs, the flow analysis models call/return as a pushdown analysis() instead of a more classic but less precise finite‐state analysis.…”
Section: Flow Analysismentioning
confidence: 99%
“…Higher-order functions are extremely useful to structure programs but also pose a significant obstacle for compilers, recent advances on higher-order control-flow analysis notwithstanding [46,22]. While we would like to retain the structuring aspect for DSL programs, we would like to avoid higher-order control flow in generated code.…”
Section: Leveraging Higher-order Functions In the Generatormentioning
confidence: 99%