A Call-by-Name CPS Hierarchy

  • Asami Tanaka
  • Yukiyoshi Kameyama
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7294)


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.


Control Operator Type System Equational Theory Reduction Rule Typing Rule 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Asai, K.: On typing delimited continuations: three new solutions to the printf problem. Higher-Order and Symbolic Computation 22(3), 275–291 (2009)MathSciNetzbMATHCrossRefGoogle Scholar
  2. 2.
    Asai, K., Kameyama, Y.: Polymorphic Delimited Continuations. In: Shao, Z. (ed.) APLAS 2007. LNCS, vol. 4807, pp. 239–254. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  3. 3.
    Biernacka, M., Biernacki, D.: Context-based Proofs of Termination for Typed Delimited-Control Operators. In: PPDP, pp. 289–300 (2009)Google Scholar
  4. 4.
    Biernacka, M., Biernacki, D., Danvy, O.: An Operational Foundation for Delimited Continuations in the CPS Hierarchy. Logical Methods in Computer Science 1(2) (2005)Google Scholar
  5. 5.
    Danvy, O., Filinski, A.: Abstracting Control. In: LFP, pp. 151–160 (1990)Google Scholar
  6. 6.
    Filinski, A.: Representing Layered Monads. In: POPL, pp. 175–188 (1999)Google Scholar
  7. 7.
    Hatcliff, J., Danvy, O.: Thunks and the Lambda-Calculus. J. Funct. Program. 7(3), 303–319 (1997)MathSciNetzbMATHCrossRefGoogle Scholar
  8. 8.
    Herbelin, H., Ghilezan, S.: An Approach to Call-by-Name Delimited Continuations. In: POPL, pp. 383–394 (2008)Google Scholar
  9. 9.
    Kameyama, Y.: Axioms for Control Operators in the CPS Hierarchy. Higher-Order and Symbolic Computation 20(4), 339–369 (2007)zbMATHCrossRefGoogle Scholar
  10. 10.
    Kameyama, Y., Hasegawa, M.: A Sound and Complete Axiomatization of Delimited Continuations. In: ICFP, pp. 177–188 (2003)Google Scholar
  11. 11.
    Kameyama, Y., Tanaka, A.: Equational Axiomatization of Call-by-Name Delimited Control. In: PPDP, pp. 77–86 (2010)Google Scholar
  12. 12.
    Kiselyov, O.: Call-by-name Linguistic Side Effects. In: ESSLLI (2008)Google Scholar
  13. 13.
    Kiselyov, O., Shan, C.C., Sabry, A.: Delimited Dynamic Binding. In: ICFP, pp. 26–37 (2006)Google Scholar
  14. 14.
    Lawall, J.L., Danvy, O.: Continuation-based partial evaluation. In: LFP, pp. 227–238 (1994)Google Scholar
  15. 15.
    Murthy, C.: Control Operators, Hierarchies, and Pseudo-Classical Type Systems: A-Translation at Work. In: Proc. ACM Workshop on Continuations, pp. 49–71 (1992)Google Scholar
  16. 16.
    Plotkin, G.D.: Call-by-Name, Call-by-Value and the Lambda-Calculus. Theor. Comput. Sci. 1(2), 125–159 (1975)MathSciNetzbMATHCrossRefGoogle Scholar
  17. 17.
    Sabry, A., Felleisen, M.: Reasoning about Programs in Continuation-Passing Style. Lisp and Symbolic Computation 6(3-4), 289–360 (1993)CrossRefGoogle Scholar
  18. 18.
    Saurin, A.: A Hierarchy for Delimited Continuations in Call-by-Name. In: Ong, L. (ed.) FOSSACS 2010. LNCS, vol. 6014, pp. 374–388. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  19. 19.
    Saurin, A.: Standardization and Böhm Trees for Λμ-Calculus. In: Blume, M., Kobayashi, N., Vidal, G. (eds.) FLOPS 2010. LNCS, vol. 6009, pp. 134–149. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  20. 20.
    Sumii, E.: An implementation of transparent migration on standard scheme. In: Scheme and Functional Programming, pp. 61–63 (2000)Google Scholar
  21. 21.
    Thielecke, H.: From Control Effects to Typed Continuation Passing. In: POPL, pp. 139–149 (2003)Google Scholar
  22. 22.
    Thielecke, H.: Answer Type Polymorphism in Call-by-Name Continuation Passing. In: Schmidt, D. (ed.) ESOP 2004. LNCS, vol. 2986, pp. 279–293. Springer, Heidelberg (2004)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Asami Tanaka
    • 1
  • Yukiyoshi Kameyama
    • 1
  1. 1.University of TsukubaJapan

Personalised recommendations