2004
DOI: 10.7146/brics.v11i3.21828
|View full text |Cite
|
Sign up to set email alerts
|

A Functional Correspondence between Call-by-Need Evaluators and Lazy Abstract Machines

Abstract: We bridge the gap between compositional evaluators and abstract machines for the lambda-calculus, using closure conversion, transformation into continuation-passing style, and defunctionalization of continuations. This article is a followup of our article at PPDP 2003, where we consider call by name and call by value. Here, however, we consider call by need.We derive a lazy abstract machine from an ordinary call-by-need evaluator that threads a heap of updatable cells. In this resulting abstract machine, the c… 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

2010
2010
2016
2016

Publication Types

Select...
2
1
1

Relationship

1
3

Authors

Journals

citations
Cited by 4 publications
(11 citation statements)
references
References 20 publications
(28 reference statements)
0
11
0
Order By: Relevance
“…We have also calculated abstract machines for lambda calculi with call-by-name and call-by-need semantics, which correspond to the Krivine machine [9] and a lazy variant of the Krivine machine derived by Ager et. al [3], respectively. The calculations can be found in the associated Coq proofs [7].…”
Section: Calculationmentioning
confidence: 99%
“…We have also calculated abstract machines for lambda calculi with call-by-name and call-by-need semantics, which correspond to the Krivine machine [9] and a lazy variant of the Krivine machine derived by Ager et. al [3], respectively. The calculations can be found in the associated Coq proofs [7].…”
Section: Calculationmentioning
confidence: 99%
“…The programmatic transformation of formal semantics dates to work by Reynolds [15]. More recent work by Danvy et al has shown that formal semantics are highly amenable to program transformations and that it is possible to automatically convert denotational semantics into operational semantics and vice versa [2,3,1,[6][7][8]. These techniques, combined with ours, should permit the mechanizable construction of static analyzers for a wider variety of formal semantics paradigms.…”
Section: Related Workmentioning
confidence: 99%
“…3 The observant reader might wonder why we omit dependence edges between syntax nodes, e.g., from Lam to Call and vice versa. In fact, we could add them.…”
Section: Continuation-passing-style λ-Calculusmentioning
confidence: 99%
See 1 more Smart Citation
“…• a call-by-value λ-calculus with state and control based on the CESK machine of Felleisen & Friedman (1987), • a call-by-need λ-calculus based on a tail-recursive, lazy variant of Krivine's machine (Krivine, 1985(Krivine, , 2007 derived by Ager et al (2004), and • a call-by-value λ-calculus with stack inspection based on the CM machine of Clements & Felleisen (2004);…”
Section: Introductionmentioning
confidence: 99%