Skip to main content

Call-by-Value Is Dual to Call-by-Name, Extended

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 4807))

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

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Barbanera, F., Berardi, S.: A symmetric lambda calculus for classical program extraction. Information and Computation 125(2), 103–117 (1996)

    Article  MATH  MathSciNet  Google Scholar 

  2. 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)

    Chapter  Google Scholar 

  3. Filinski, A.: Declarative continuations and categorical duality. Master’s thesis, Univ. of Copenhagen (1989)

    Google Scholar 

  4. Filinski, A.: Recursion from iteration. Lisp and Symbolic Computation 7(1), 11–38 (1994)

    Article  Google Scholar 

  5. 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)

    Google Scholar 

  6. Hofmann, M., Streicher, T.: Completeness of continuation models for λμ-calculus. Information and Computation 179(2), 332–355 (2002)

    Article  MATH  MathSciNet  Google Scholar 

  7. Kakutani, Y.: Duality between call-by-name recursion and call-by-value iteration. Master’s thesis, Kyoto University (2001)

    Google Scholar 

  8. 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)

    Google Scholar 

  9. 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)

    Chapter  Google Scholar 

  10. Pierce, B.C.: Types and Programming Languages. MIT Press, Cambridge (2002)

    Google Scholar 

  11. Pym, D., Ritter, E.: On the semantics of classical disjunction. Journal of Pure and Applied Algebra 159, 315–338 (2001)

    Article  MATH  MathSciNet  Google Scholar 

  12. Sabry, A., Felleisen, M.: Reasoning about programs in continuation-passing style. Lisp and Symbolic Computation 6(3/4), 289–360 (1993)

    Article  Google Scholar 

  13. 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)

    Google Scholar 

  14. Wadler, P.: Call-by-Value is Dual to Call-by-Name. In: International Conference on Functional Programming, Uppsala, Sweden, pp. 25–29 (2003)

    Google Scholar 

  15. 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)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Zhong Shao

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics