1992
DOI: 10.1017/s0960129500001535
|View full text |Cite
|
Sign up to set email alerts
|

Representing Control: a Study of the CPS Transformation

Abstract: This paper investigates the transformation of λν-terms into continuation-passing style (CPS). We show that by appropriate η-expansion of Fisher and Plotkin's two-pass equational specification of the CPS transform, we can obtain a static and context-free separation of the result terms into “essential” and “administrative” constructs. Interpreting the former as syntax builders and the latter as directly executable code, We obtain a simple and efficient one-pass transformation algorithm, easily extended to condit… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
294
1
2

Year Published

2001
2001
2013
2013

Publication Types

Select...
6
1
1

Relationship

0
8

Authors

Journals

citations
Cited by 277 publications
(297 citation statements)
references
References 29 publications
0
294
1
2
Order By: Relevance
“…f [4][5][6] are defined in the same way as f [1][2][3] , so the parsing engine ends up using the 4-box to bind p 2 , and the 5,6-box to calculate the predicate (p 2 − p 1 = x). If this evaluates to true, the engine uses the 5,6 box to calculate the final value, (), of the successful parse; otherwise, this run of the parse fails.…”
Section: Coroutines By Examplementioning
confidence: 99%
See 1 more Smart Citation
“…f [4][5][6] are defined in the same way as f [1][2][3] , so the parsing engine ends up using the 4-box to bind p 2 , and the 5,6-box to calculate the predicate (p 2 − p 1 = x). If this evaluates to true, the engine uses the 5,6 box to calculate the final value, (), of the successful parse; otherwise, this run of the parse fails.…”
Section: Coroutines By Examplementioning
confidence: 99%
“…C[ [·]] is written in the style of a continuation-passing transform, and we use contexts K as the continuation argument of the transform. By using contexts, rather than target language expressions, as arguments to the transform, we obtain a one-pass algorithm whose result does not have administrative redexes [3].…”
Section: Coroutine Production C[[·]] Given a Labeled Gul Right Side mentioning
confidence: 99%
“…Background: It is the author's thesis 2 that functional representations of small-step operational semantics (i.e., structured operational semantics), reduction semantics (i.e., small-step operational semantics with an explicit representation of the reduction context), small-step abstract machines, big-step abstract machines, big-step operational semantics (i.e., natural semantics), and denotational semantics are inter-derivable using elementary program transformations such as CPS transformation [18,44,47,51], defunctionalization [21,47], fixed-point fusion [19,43], and refocusing [22].…”
Section: ¥ T Umentioning
confidence: 99%
“…2008 Workshop on Scheme and Functional Programming tent [28]. It is endowed with a variety of specifications: a CPS transformation [18], a CPS interpreter [30,48], a denotational semantics [33], a computational monad [55], a big-step operational semantics [29], the CEK machine [26], calculi in the form of reduction semantics [25], and a number of implementation techniques [12,15,31]-not to mention its call-by-name variant in the archival version of Krivine's machine [34]. Question: How do we know that all the artifacts 1 in this semantic jungle define the same call/cc?…”
Section: Introductionmentioning
confidence: 99%
“…Figure 5 defines the translation. It follows the basic strategy of Danvy and Filinski's one-pass translation to continuationpassing style [7,6] x0(σ, x1, . .…”
Section: First Stepsmentioning
confidence: 99%