Call-by-value is dual to call-by-name, extended

  • Authors:
  • Daisuke Kimura

  • Affiliations:
  • National Institute of Informatics, Tokyo, Japan

  • Venue:
  • APLAS'07 Proceedings of the 5th Asian conference on Programming languages and systems
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

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-byname and call-by-value systems respectively. Secondly, we add recursive types, T, and ⊥ types to these systems. The extended duality between call-byname 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.