The duality of computation

Pierre-Louis Curien, Hugo Herbelin
2000 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming - ICFP '00  
We present the λµμ-calculus, a syntax for λ-calculus + control operators exhibiting symmetries such as program/context and call-by-name/call-by-value. This calculus is derived from implicational Gentzen's sequent calculus LK, a key classical logical system in proof theory. Under the Curry-Howard correspondence between proofs and programs, we can see LK, or more precisely a formulation called LKµμ, as a syntax-directed system of simple types for λµμ-calculus. For λµμ-calculus, choosing a
more » ... name or call-by-value discipline for reduction amounts to choosing one of the two possible symmetric orientations of a critical pair. Our analysis leads us to revisit the question of what is a natural syntax for call-by-value functional computation. We define a translation of λµ-calculus into λµμ-calculus and two dual translations back to λ-calculus, and we recover known CPS translations by composing these translations. 1 Danos has also recognized the relevance of these three categories in [4] where he extends the work of Ogata [18] on the relation between LKQ and call-by-value CPS-translations (LKQ is the other natural restriction of LK considered in [5, 6] ).
doi:10.1145/351240.351262 dblp:conf/icfp/CurienH00 fatcat:6wcsxmzjqrd67p5knlom4detqa