Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
LISP and Symbolic Computation: Abstract, 6(3/4)289-360
[go: Go Back, main page]

LISP and Symbolic Computation, 6(3/4)289-360

Reasoning about Programs in Continuation-Passing Style

Amr Sabry, Department of Computer Science, Rice University, Houston, TX 77251-1892
Matthias Felleisen, Department of Computer Science, Rice University, Houston, TX 77251-1892

Abstract: Plotkin's lambda-v-calculus for call-by-value programs is weaker than the lambda-beta-eta-calculus for the same programs in continuation-passing style (CPS). To identify the call-by-value axioms that correspond to beta-eta on CPS terms, we define a new CPS transformation and an inverse mapping, both of which are interesting in their own right. Using the new CPS transformation, we determine the precise language of CPS terms closed under beta-eta-transformations, as well as the call-by-value axioms that correspond to the so-called administrative beta-eta-reductions on CPS terms. Using the inverse mapping, we map the remaining beta and eta equalities on CPS terms to axioms on call-by-value terms. On the pure (constant free) set of 3-terms, the resulting set of axioms is equivalent to Moggi's computational lambda-calculus. If the call-by-value language includes the control operators abort and call-with-current-continuation, the axioms are equivalent to an extension of Felleisen et al.'s lambda-v-C-calculus and to the equational subtheory of Talcott's logic IOCC.

Keywords: lambda-calculus, lambda-v-calculus, continuation-passing style, CPS transformations, inverse CPS transformations, lambda-v-C-calculus, IOCC

[local copy]
[picture of journal cover]

May 2003 - hosc@brics.dk