2003
DOI: 10.7146/brics.v10i33.21801
|View full text |Cite
|
Sign up to set email alerts
|

A Rational Deconstruction of Landin's SECD Machine

Abstract: Landin's SECD machine was the first abstract machine for the λ-calculus viewed as a programming language. Both theoretically as a model of computation and practically as an idealized implementation, it has set the tone for the subsequent development of abstract machines for functional programming languages. However, and even though variants of the SECD machine have been presented, derived, and invented, the precise rationale for its architecture and modus operandi has remained elusive. In this article, we deco… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

1
9
0

Year Published

2004
2004
2014
2014

Publication Types

Select...
5
3

Relationship

3
5

Authors

Journals

citations
Cited by 19 publications
(10 citation statements)
references
References 24 publications
1
9
0
Order By: Relevance
“…Inlining the abstraction layer provided by the monad yields the evaluator of Figure 3. Dynamic continuation-passing style therefore fits the functional correspondence between evaluators and abstract machines advocated by the first two authors [1,2,13]. Furthermore, and as has been observed before for other CPS transformations and for the continuation monad [27,43], the dynamic CPS transformation itself can be factored through Moggi's monadic metalanguage and the monad above.…”
Section: A Monad For Dynamic Continuation-passing Stylesupporting
confidence: 59%
“…Inlining the abstraction layer provided by the monad yields the evaluator of Figure 3. Dynamic continuation-passing style therefore fits the functional correspondence between evaluators and abstract machines advocated by the first two authors [1,2,13]. Furthermore, and as has been observed before for other CPS transformations and for the continuation monad [27,43], the dynamic CPS transformation itself can be factored through Moggi's monadic metalanguage and the monad above.…”
Section: A Monad For Dynamic Continuation-passing Stylesupporting
confidence: 59%
“…As we have already observed in previous work [2,6,9,11,12], the evaluation contexts, together with the cont transition function, are the defunctionalized counterpart of a continuation. We can therefore "refunctionalize" this continuation and then write the evaluator in direct style.…”
Section: Stack Inspection As a Lifted State Monadmentioning
confidence: 64%
“…Diehl, Hartel, and Sestoft's overview of abstract machines for programming-language implementation [14] concluded on the need to develop a theory of abstract machines. In previous work [2,9], we have attempted to contribute to this theory by identifying a correspondence between interpreters (i.e., evaluation functions in the sense of denotational semantics) and abstract machines (i.e., transition functions in the sense of operational semantics). The correspondence builds on the observation that defunctionalized continuation-passing evaluators are abstract machines.…”
Section: Introductionmentioning
confidence: 99%
See 1 more Smart Citation
“…Obtaining staged abstract machines was one of the goals of Hardin, Maranget, and Pagano's study of functional runtime systems using explicit substitutions [26]; these machines arise mechanically here. As investigated by Danvy and his students in their study of the functional correspondence between compositional evaluation functions and abstract machines [4][5][6]16], the eval/apply machines are in defunctionalized form [17,35] and they can be 'refunctionalized' into a continuation-passing evaluation function which itself can be written in direct style [14] and implements a big-step operational semantics. (Because of the closures, the result is again in defunctionalized form and can be refunctionalized into a compositional evaluation function implementing the valuation function of a denotational semantics.…”
Section: A Derivational Taxonomy Of Abstract Machinesmentioning
confidence: 99%