2012
DOI: 10.1145/2187671.2187672
|View full text |Cite
|
Sign up to set email alerts
|

Control-flow analysis of functional programs

Abstract: We present a survey of control-flow analysis of functional programs, which has been the subject of extensive investigation throughout the past 25 years. Analyses of the control flow of functional programs have been formulated in multiple settings and have led to many different approximations, starting with the seminal works of Jones, Shivers, and Sestoft. In this paper we survey control-flow analysis of functional programs by structuring the multitude of formulations and approximations and comparing them. * IT… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
44
0
1

Year Published

2015
2015
2024
2024

Publication Types

Select...
4
3
2

Relationship

0
9

Authors

Journals

citations
Cited by 65 publications
(46 citation statements)
references
References 149 publications
0
44
0
1
Order By: Relevance
“…0CFA [20] is a popular form of Control Flow Analysis. It is flow insensitive and context insensitive, but precise enough to be useful for many applications, including guiding compiler optimisations [17,2], providing autocompletion hints in IDEs and noninterference analysis [14]. It is perhaps the simplest static analysis that handles higher order functions, which are a staple of functional programming.…”
Section: Cfa For Lambda Calculusmentioning
confidence: 99%
See 1 more Smart Citation
“…0CFA [20] is a popular form of Control Flow Analysis. It is flow insensitive and context insensitive, but precise enough to be useful for many applications, including guiding compiler optimisations [17,2], providing autocompletion hints in IDEs and noninterference analysis [14]. It is perhaps the simplest static analysis that handles higher order functions, which are a staple of functional programming.…”
Section: Cfa For Lambda Calculusmentioning
confidence: 99%
“…A term t l can be analysed by finding a Γ and ϕ such that Γ, ϕ |= t l . This is done by solving the 6 2 , @ (7,2) } Γ(11) = {F 10 1 , @ (10,9) , @ (17,8) , @ (7,2) } ϕ(13) = true ϕ(15) = true Γ, ϕ |= (S 15 @ 16 (F 13 @ 14 F 12 )@ 17 (F 10 @ 11 F 9 ))@ 18 (S 6 @ 7 (F 4 @ 5 F 3 )@ 8 (F 1 @ 2 F 0 )) Figure 8: Solution of the analysis for application of identity to itself in SF-calculus.…”
Section: Analysis Rulesmentioning
confidence: 99%
“…Midtgaard's survey [12] and the book by Nielson et al [13]). The aim of CFA is to approximate the flow of control within a program phrase in the course of a computation.…”
Section: Control Flow Analysismentioning
confidence: 99%
“…Static analysis by abstract interpretation proves properties of a program by running its code through an interpreter powered by an abstract semantics that approximates the behavior of a concrete semantics. This process is a general method for analyzing programs and serves applications such as program verification, malware/vulnerability detection, and compiler optimization, among others [1][2][3]10] The abstracting abstract machines (AAM) approach uses abstract interpretation of abstract machines for controlflow analysis (CFA) of functional (higher-order) programming languages [9,12,15]. The AAM methodology allows a high degree of control over how program states are represented and is easy to instrument.…”
Section: Introductionmentioning
confidence: 99%