## Representing control: a study of the CPS transformation (1992)

### Cached

### Download Links

- [www2.cs.cornell.edu]
- [www2.dcs.ed.ac.uk]
- [www-pu.informatik.uni-tuebingen.de]
- [ftp.cs.indiana.edu]
- CiteULike
- DBLP

### Other Repositories/Bibliography

Citations: | 81 - 7 self |

### BibTeX

@MISC{Danvy92representingcontrol:,

author = {Olivier Danvy and Andrzej Filinski},

title = {Representing control: a study of the CPS transformation},

year = {1992}

}

### Years of Citing Articles

### OpenURL

### Abstract

ing Control So far we have been investigating how to perform the CPS transformation. This section explores properties and extensions of the transformation function. 5.1. Reynolds's escape operator Not every -calculus term is obtainable as a result of the CPS transformation. Some of the "unused" terms correspond to control operators in the source language. For example, the operator escape (interdefinable with Scheme's call/cc) can be defined by the equation: [[escape c in M ]] = :let c 0 = a: 0 :@a in @[[M [c/c 0 ]]] As a control operator, escape captures the current continuation and provides a representation of this current continuation as if it were a function in the source program. Applying this function to a value amounts to abandoning the current context of computation and passing this value to the captured continuation. For example, transforming the term f:escape c in 1 + (@f c) into CPS in an empty context (and unfolding the let) yields f:c:@(@f (x:k:@cx)) (v:@c(1 + ...