Classical Call-by-Need Sequent Calculi: The Unity of Semantic Artifacts

We systematically derive a classical call-by-need sequent calculus, which does not require an unbounded search for the standard redex, by using the unity of semantic artifacts proposed by Danvy et al. The calculus serves as an intermediate step toward the generation of an environment-based abstract machine. The resulting abstract machine is context-free, so that each step is parametric in all but one component. The context-free machine elegantly leads to an environment-based CPS transformation. This transformation is observationally different from a natural classical extension of the transformation of Okasaki et al. , due to duplication of un-evaluated bindings.

[1]  Amr Sabry,et al.  Lazy evaluation and delimited control , 2009, POPL '09.

[2]  Tom Schrijvers,et al.  Functional and Logic Programming , 2012, Lecture Notes in Computer Science.

[3]  Alexis Saurin,et al.  Classical Call-by-Need and Duality , 2011, TLCA.

[4]  Philip Wadler XQuery: A Typed Functional Language for Querying XML , 2002, Advanced Functional Programming.

[5]  Martin Odersky,et al.  The call-by-need lambda calculus , 1998, Journal of Functional Programming.

[6]  Peter Lee,et al.  Call-by-need and continuation-passing style , 1994, LISP Symb. Comput..

[7]  Sam Lindley,et al.  Extensional Rewriting with Sums , 2007, TLCA.

[8]  Matthias Felleisen,et al.  A call-by-need lambda calculus , 1995, POPL '95.

[9]  Olivier Danvy From Reduction-Based to Reduction-Free Normalization , 2008, Advanced Functional Programming.

[10]  Hugo Herbelin,et al.  Control reduction theories: the benefit of structural substitution , 2008, J. Funct. Program..

[11]  Olivier Danvy,et al.  Defunctionalized Interpreters for Call-by-Need Evaluation , 2010, FLOPS.

[12]  Michel Parigot,et al.  Lambda-Mu-Calculus: An Algorithmic Interpretation of Classical Natural Deduction , 1992, LPAR.