Abstract
We extend Wadler’s work that showed duality between call-by-value and call-by-name by giving mutual translations between the λμ-calculus and the dual calculus. We extend the λμ-calculus and the dual calculus through two stages. We first add a fixed-point operator and an iteration operator to the call-by-name and call-by-value systems respectively. Secondly, we add recursive types, ⊤, and \(\bot\) types to these systems. The extended duality between call-by-name with recursion and call-by-value with iteration has been suggested by Kakutani. He followed Selinger’s category-theoretic approach. We completely follow Wadler’s syntactic approach. We give mutual translations between our extended λμ-calculus and dual calculus by extending Wadler’s translations, and also show that our translations form an equational correspondence, which was defined by Sabry and Felleisen. By composing our translations with duality on the dual calculus, we obtain a duality on our extended λμ-calculus. Wadler’s duality on the λμ-calculus was an involution, and our duality on our extended λμ-calculus is also an involution.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Barbanera, F., Berardi, S.: A symmetric lambda calculus for classical program extraction. Information and Computation 125(2), 103–117 (1996)
Curien, P.-L., Herbelin, H.: The duality of computation. In: ICFP 2000. Proc. of the Fifth ACM SIGPLAN International Conference on Functional Programming, Montreal, Canada, pp. 233–243. ACM Press, New York (2000)
Filinski, A.: Declarative continuations and categorical duality. Master’s thesis, Univ. of Copenhagen (1989)
Filinski, A.: Recursion from iteration. Lisp and Symbolic Computation 7(1), 11–38 (1994)
Griffin, T.G.: A formulae-as-types notion of control. In: Proc. of the 1990 Principles of Programming Languages Conference, pp. 47–58. IEEE Computer Society Press, Los Alamitos (1990)
Hofmann, M., Streicher, T.: Completeness of continuation models for λμ-calculus. Information and Computation 179(2), 332–355 (2002)
Kakutani, Y.: Duality between call-by-name recursion and call-by-value iteration. Master’s thesis, Kyoto University (2001)
Ong, C.-H.L., Stewart, C.A.: A Curry-Howard foundation for functional computation with control. In: Proc. of the Symposium on Principles of Programming Languages, pp. 215–227 (1997)
Parigot, M.: λμ-calculus: an algorithmic interpretation of classical natural deduction. In: Voronkov, A. (ed.) LPAR 1992. LNCS, vol. 624, pp. 190–201. Springer, Heidelberg (1992)
Pierce, B.C.: Types and Programming Languages. MIT Press, Cambridge (2002)
Pym, D., Ritter, E.: On the semantics of classical disjunction. Journal of Pure and Applied Algebra 159, 315–338 (2001)
Sabry, A., Felleisen, M.: Reasoning about programs in continuation-passing style. Lisp and Symbolic Computation 6(3/4), 289–360 (1993)
Selinger, P.: Control categories and duality: on the categorical semantics of the lambda-mu calculus. In: Mathematical Structures in Computer Science, pp. 207–260 (2001)
Wadler, P.: Call-by-Value is Dual to Call-by-Name. In: International Conference on Functional Programming, Uppsala, Sweden, pp. 25–29 (2003)
Wadler, P.: Call-by-Value is Dual to Call-by-Name – Reloaded. In: Rewriting Techniques and Applications, Nara, Japan, pp. 185–203. Springer, Heidelberg (2005)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Kimura, D. (2007). Call-by-Value Is Dual to Call-by-Name, Extended. In: Shao, Z. (eds) Programming Languages and Systems. APLAS 2007. Lecture Notes in Computer Science, vol 4807. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-76637-7_28
Download citation
DOI: https://doi.org/10.1007/978-3-540-76637-7_28
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-76636-0
Online ISBN: 978-3-540-76637-7
eBook Packages: Computer ScienceComputer Science (R0)