Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation 2021
DOI: 10.1145/3453483.3454057
|View full text |Cite
|
Sign up to set email alerts
|

Trace-based control-flow analysis

Abstract: We define a small-step semantics for the untyped λ-calculus, that traces the β-reductions that occur during evaluation. By abstracting the computation traces, we reconstruct -CFA using abstract interpretation, and justify constraint-based -CFA in a semantic way. The abstract interpretation of the trace semantics also paves the way for introducing widening operators in CFA that go beyond existing analyses, that are all based on exploring a finite state space. We define ∇CFA, a widening-based analysis that limit… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
5
0

Year Published

2023
2023
2024
2024

Publication Types

Select...
3
2

Relationship

1
4

Authors

Journals

citations
Cited by 5 publications
(5 citation statements)
references
References 41 publications
0
5
0
Order By: Relevance
“…The role of the fixpoint solver is to find a post-fixpoint of this functional. Similar approaches-leveraging fixpoint solvers to define static analysers-have been successfully used in other work on static analysis [22,64,50,4]. Our abstract interpreter is defined in Figure 2, where t eval E denotes the abstract value of type m ♯ A obtained by analysing the program t under the abstract environment E, and using the analysis function eval for recursive calls.…”
Section: A Monadic Abstract Interpreter In Open Recursive Stylementioning
confidence: 99%
See 3 more Smart Citations
“…The role of the fixpoint solver is to find a post-fixpoint of this functional. Similar approaches-leveraging fixpoint solvers to define static analysers-have been successfully used in other work on static analysis [22,64,50,4]. Our abstract interpreter is defined in Figure 2, where t eval E denotes the abstract value of type m ♯ A obtained by analysing the program t under the abstract environment E, and using the analysis function eval for recursive calls.…”
Section: A Monadic Abstract Interpreter In Open Recursive Stylementioning
confidence: 99%
“…Our analyser is context sensitive: we implemented a form of call site sensitivity, that is akin to an abstraction of the call stack. Following [50], we retain full sensitivity until the list of call sites becomes maximal, i.e., when a program point appears more than once in that list, which may indicate a recursive call to some function. In addition, we always remember the last call site.…”
Section: Refinements With Respect To the Formal Presentationmentioning
confidence: 99%
See 2 more Smart Citations
“…In a sequential setting, splitting control locations according to some abstraction of reaching traces is a common technique for improving the precision of dataflow analyses [9,27] or abstract interpretation [25,34,41,47]. Control point splitting can be understood as an instance of the reduced cardinal power domain [12,13,22].…”
Section: Monat and Minémentioning
confidence: 99%