Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Asai, K.: On typing delimited continuations: three new solutions to the printf problem. Higher-Order and Symbolic Computation 22(3), 275–291 (2009)
Asai, K., Kameyama, Y.: Polymorphic Delimited Continuations. In: Shao, Z. (ed.) APLAS 2007. LNCS, vol. 4807, pp. 239–254. Springer, Heidelberg (2007)
Biernacka, M., Biernacki, D.: Context-based Proofs of Termination for Typed Delimited-Control Operators. In: PPDP, pp. 289–300 (2009)
Biernacka, M., Biernacki, D., Danvy, O.: An Operational Foundation for Delimited Continuations in the CPS Hierarchy. Logical Methods in Computer Science 1(2) (2005)
Danvy, O., Filinski, A.: Abstracting Control. In: LFP, pp. 151–160 (1990)
Filinski, A.: Representing Layered Monads. In: POPL, pp. 175–188 (1999)
Hatcliff, J., Danvy, O.: Thunks and the Lambda-Calculus. J. Funct. Program. 7(3), 303–319 (1997)
Herbelin, H., Ghilezan, S.: An Approach to Call-by-Name Delimited Continuations. In: POPL, pp. 383–394 (2008)
Kameyama, Y.: Axioms for Control Operators in the CPS Hierarchy. Higher-Order and Symbolic Computation 20(4), 339–369 (2007)
Kameyama, Y., Hasegawa, M.: A Sound and Complete Axiomatization of Delimited Continuations. In: ICFP, pp. 177–188 (2003)
Kameyama, Y., Tanaka, A.: Equational Axiomatization of Call-by-Name Delimited Control. In: PPDP, pp. 77–86 (2010)
Kiselyov, O.: Call-by-name Linguistic Side Effects. In: ESSLLI (2008)
Kiselyov, O., Shan, C.C., Sabry, A.: Delimited Dynamic Binding. In: ICFP, pp. 26–37 (2006)
Lawall, J.L., Danvy, O.: Continuation-based partial evaluation. In: LFP, pp. 227–238 (1994)
Murthy, C.: Control Operators, Hierarchies, and Pseudo-Classical Type Systems: A-Translation at Work. In: Proc. ACM Workshop on Continuations, pp. 49–71 (1992)
Plotkin, G.D.: Call-by-Name, Call-by-Value and the Lambda-Calculus. Theor. Comput. Sci. 1(2), 125–159 (1975)
Sabry, A., Felleisen, M.: Reasoning about Programs in Continuation-Passing Style. Lisp and Symbolic Computation 6(3-4), 289–360 (1993)
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)
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)
Sumii, E.: An implementation of transparent migration on standard scheme. In: Scheme and Functional Programming, pp. 61–63 (2000)
Thielecke, H.: From Control Effects to Typed Continuation Passing. In: POPL, pp. 139–149 (2003)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Tanaka, A., Kameyama, Y. (2012). A Call-by-Name CPS Hierarchy. In: Schrijvers, T., Thiemann, P. (eds) Functional and Logic Programming. FLOPS 2012. Lecture Notes in Computer Science, vol 7294. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-29822-6_21
Download citation
DOI: https://doi.org/10.1007/978-3-642-29822-6_21
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-29821-9
Online ISBN: 978-3-642-29822-6
eBook Packages: Computer ScienceComputer Science (R0)