2018
DOI: 10.1145/3236800
|View full text |Cite
|
Sign up to set email alerts
|

Refunctionalization of abstract abstract machines: bridging the gap between abstract abstract machines and abstract definitional interpreters (functional pearl)

Abstract: machines is a systematic methodology for constructing sound static analyses for higherorder languages, by deriving small-step abstract abstract machines (AAMs) that perform abstract interpretation from abstract machines that perform concrete evaluation. Darais et al. apply the same underlying idea to monadic definitional interpreters, and obtain monadic abstract definitional interpreters (ADIs) that perform abstract interpretation in big-step style using monads. Yet, the relation between small-step abstract ab… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
10
0

Year Published

2019
2019
2021
2021

Publication Types

Select...
3
2

Relationship

1
4

Authors

Journals

citations
Cited by 7 publications
(10 citation statements)
references
References 54 publications
0
10
0
Order By: Relevance
“…Without a continuation component, an Eval PD state is an evaluation configuration and an Apply PD state is an evaluation result. Except for the presence of the time component, State PD exhibits precisely the configuration and result shapes one finds in many stack-precise CFAs [17,8,1,18].…”
Section: Stack-precise Cfa With Garbage Collectionmentioning
confidence: 72%
See 1 more Smart Citation
“…Without a continuation component, an Eval PD state is an evaluation configuration and an Apply PD state is an evaluation result. Except for the presence of the time component, State PD exhibits precisely the configuration and result shapes one finds in many stack-precise CFAs [17,8,1,18].…”
Section: Stack-precise Cfa With Garbage Collectionmentioning
confidence: 72%
“…Formulating our semantics in big-step style offers two advantages to our setting: First, we can readily express them by big-step definitional interpreters at which point we can apply systematic abstraction techniques [1,18] to obtain corresponding CFAs exhibiting perfect stack precision. Second, they emphasize the availability of the configuration store at the delivery point of the evaluation result; this availability is crucial to our ability to shift to a compositional treatment of the store.…”
Section: From Threaded To Compositional Storesmentioning
confidence: 99%
“…The caching algorithm is also called a co-inductive caching or truncated depth-first evaluation [Rosendahl 2013]. It has been used in other abstract interpreters or fixed-point computation [Darais et al 2017;Rosendahl 2013;Wei et al 2018]. The idea is to use an in cache and an out cache during the depth-first evaluation.…”
Section: Abstract Semanticsmentioning
confidence: 99%
“…The unstaged abstract interpreter in this paper follows the abstracting definitional interpreters (ADI) approach [Darais et al 2017]. Similar to ADI, reconstructing big-step abstract interpreters with delimited continuations was shown by Wei et al [2018]. Keidel et al [2018] presented a modular, arrow-based abstract interpreter that allows soundness proofs to be constructed compositionally.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation