A Call-by-Name CPS Hierarchy

The Continuation-Passing-Style (CPS) translation gives semantics to control operators such as exception and first-class continuations. By iterating this translation, Danvy and Filinski obtained a CPS hierarchy, and used it to specify a series of control operators, hierarchical (or layered) delimited-control operators. We introduce a call-by-name variant of the CPS hierarchy. While most of the work on delimited-control operators is based on call-by-value calculi, call-by-name delimited-control operators are an active target of recent studies. Our strategy for developing such a hierarchy is to use the results for the call-by-value calculi as much as possible. The key tool is Hatcliff and Danvy's factorization of Plotkin's call-by-name CPS translation into a thunk translation and a call-by-value CPS translation. We show that a call-by-name CPS hierarchy can be obtained by naturally extending the factorization to the calculi with control operators, and then prove several properties for this hierarchy.

[1]  Eijiro Sumii,et al.  An Implementation of Transparent Migration on Standard Scheme , 2002 .

[2]  O. Danvy,et al.  An Operational Foundation for Delimited Continuations , 2003 .

[3]  Gordon D. Plotkin,et al.  Call-by-Name, Call-by-Value and the lambda-Calculus , 1975, Theor. Comput. Sci..

[4]  Olivier Danvy,et al.  Abstracting control , 1990, LISP and Functional Programming.

[5]  Amr Sabry,et al.  Delimited dynamic binding , 2006, ICFP '06.

[6]  Hayo Thielecke,et al.  From control effects to typed continuation passing , 2003, POPL '03.

[7]  M. Felleisen,et al.  Reasoning about programs in continuation-passing style , 1993 .

[8]  Alexis Saurin,et al.  A Hierarchy for Delimited Continuations in Call-by-Name , 2010, FoSSaCS.

[9]  Hugo Herbelin,et al.  An approach to call-by-name delimited continuations , 2008, POPL '08.

[10]  Brian Campbell,et al.  Amortised Memory Analysis Using the Depth of Data Structures , 2009, ESOP.

[11]  Ian Stark,et al.  Free-Algebra Models for the pi-Calculus , 2005, FoSSaCS.

[12]  Andrzej Filinski,et al.  Representing layered monads , 1999, POPL '99.

[13]  Olivier Danvy,et al.  An Operational Foundation for Delimited Continuations in the CPS Hierarchy , 2005, Log. Methods Comput. Sci..

[14]  Yukiyoshi Kameyama,et al.  Equational axiomatization of call-by-name delimited control , 2010, PPDP.

[15]  Olivier Danvy,et al.  Thunks and the λ-calculus , 1997, Journal of Functional Programming.

[16]  Hayo Thielecke,et al.  Answer Type Polymorphism in Call-by-Name Continuation Passing , 2004, ESOP.

[17]  Tom Schrijvers,et al.  Functional and Logic Programming , 2012, Lecture Notes in Computer Science.

[18]  Alexis Saurin Standardization and Böhm trees for Λ μ-calculus , 2009 .

[19]  Yukiyoshi Kameyama,et al.  A sound and complete axiomatization of delimited continuations , 2003, ICFP '03.

[20]  Olivier Danvy,et al.  Continuation-based partial evaluation , 1994, LFP '94.

[21]  Yukiyoshi Kameyama Axioms for control operators in the CPS hierarchy , 2007, High. Order Symb. Comput..

[22]  Alexis Saurin,et al.  Standardization and Böhm Trees for Lambdaµ-Calculus , 2010, FLOPS.

[23]  Olivier Danvy,et al.  Thunks and the lambda-Calculus , 1997, J. Funct. Program..

[24]  Dariusz Biernacki,et al.  Context-based proofs of termination for typed delimited-control operators , 2009, PPDP '09.

[25]  Oleg Kiselyov FNMOC Call-byname linguistic side effects , 2008 .

[26]  Kenichi Asai On typing delimited continuations: three new solutions to the printf problem , 2009, High. Order Symb. Comput..

[27]  Yukiyoshi Kameyama,et al.  Polymorphic Delimited Continuations , 2007, APLAS.