2005
DOI: 10.1016/j.tcs.2005.06.008
|View full text |Cite
|
Sign up to set email alerts
|

A functional correspondence between monadic evaluators and abstract machines for languages with computational effects

Abstract: We show how to derive new abstract machines from monadic evaluators for the computational λ-calculus. Starting from (1) a generic evaluator parameterized by a monad and (2) a monad specifying a computational effect, we inline the components of the monad in the generic evaluator to obtain an evaluator written in a style that is specific to this computational effect. We then derive the corresponding abstract machine by closure-converting, CPS-transforming, and defunctionalizing this specific evaluator. We illust… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
24
0

Year Published

2005
2005
2022
2022

Publication Types

Select...
5
2

Relationship

3
4

Authors

Journals

citations
Cited by 46 publications
(24 citation statements)
references
References 33 publications
(31 reference statements)
0
24
0
Order By: Relevance
“…In regard to the latter it is worth noting that the combination supports a nonstandard exception-handling mechanism, that, when an exception is raised, restores the state to what it was when the handler was defined, and then executes the handler. This combination of state and exceptions has been termed 'transitional' in [11], and 'snapback' in [4]. In practice, monads for various kinds of exceptions, and even states, would be combined; some sample calculations are given in Section 7.…”
Section: Introductionmentioning
confidence: 99%
“…In regard to the latter it is worth noting that the combination supports a nonstandard exception-handling mechanism, that, when an exception is raised, restores the state to what it was when the handler was defined, and then executes the handler. This combination of state and exceptions has been termed 'transitional' in [11], and 'snapback' in [4]. In practice, monads for various kinds of exceptions, and even states, would be combined; some sample calculations are given in Section 7.…”
Section: Introductionmentioning
confidence: 99%
“…To make it follow call by need [14,17,27], we thread a heap of updatable cells (Section 2.2). Threading this heap is akin to inlining a state monad [2]. Using updatable cells to implement call by need is traditional [3, p. 333], [28, p. 81].…”
Section: From Evaluator To Abstract Machinementioning
confidence: 99%
“…Sestoft concentrates on deriving one particular abstract machine out of one natural semantics, whereas the present article is part of a general investigation of a correspondence between evaluators and abstract machines [1,2,7].…”
Section: Related Workmentioning
confidence: 99%
See 2 more Smart Citations