Normalization by Evaluation for the Computational Lambda-Calculus

We show how a simple semantic characterization of normalization by evaluation for the λβη-calculus can be extended to a similar construction for normalization of terms in the computational λ-calculus. Specifically, we show that a suitable residualizing interpretation of base types, constants, and computational effects allows us to extract a syntactic normal form from a term's denotation. The required interpretation can itself be constructed as the meaning of a suitable functional program in an ML-like language, leading directly to a practical normalization algorithm. The results extend easily to product and sum types, and can be seen as a formal basis for call-by-value type-directed partial evaluation.

[1]  Olivier Danvy,et al.  Representing Control: a Study of the CPS Transformation , 1992, Mathematical Structures in Computer Science.

[2]  Andrzej Filinski,et al.  Representing layered monads , 1999, POPL '99.

[3]  Ulrich Berger,et al.  Program Extraction from Normalization Proofs , 2006, Stud Logica.

[4]  Andrew M. Pitts,et al.  A new approach to abstract syntax involving binders , 1999, Proceedings. 14th Symposium on Logic in Computer Science (Cat. No. PR00158).

[5]  Sophia Mã ¶ ller Partial Evaluation Practice And Theory Diku 1998 International Summer School Copenhagen Denmark June 29 July 10 1998 , 1998 .

[6]  Olivier Danvy Type-Directed Partial Evaluation , 1998, Partial Evaluation.

[7]  Eugenio Moggi,et al.  Computational lambda-calculus and monads , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

[8]  Naoki Kobayashi,et al.  Online-and-offline partial evaluation (extended abstract): a mixed approach , 1999 .

[9]  Martin Hofmann,et al.  Categorical Reconstruction of a Reduction Free Normalization Proof , 1995, Category Theory and Computer Science.

[10]  Eijiro Sumii,et al.  Online-and-Offline Partial Evaluation: A Mixed Approach (Extended Abstract). , 2000 .

[11]  Amr Sabry,et al.  The essence of compiling with continuations , 1993, PLDI '93.

[12]  Andrzej Filinski,et al.  A Semantic Account of Type-Directed Partial Evaluation , 1999, PPDP.

[13]  Thierry Coquand,et al.  Intuitionistic model constructions and normalization proofs , 1997, Mathematical Structures in Computer Science.

[14]  Helmut Schwichtenberg,et al.  Normalisation by Evaluation , 1998, Prospects for Hardware Foundations.

[15]  Amr Sabry,et al.  The essence of compiling with continuations (with retrospective) , 1993, PLDI 1993.

[16]  Bernd Grobauer,et al.  The Second Futamura Projection for Type-Directed Partial Evaluation , 1999 .

[17]  Gordon D. Plotkin,et al.  Abstract syntax and variable binding , 1999, Proceedings. 14th Symposium on Logic in Computer Science (Cat. No. PR00158).

[18]  Ulrich Berger,et al.  An inverse of the evaluation functional for typed lambda -calculus , 1991, [1991] Proceedings Sixth Annual IEEE Symposium on Logic in Computer Science.

[19]  Peter Dybjer,et al.  Normalization and the Yoneda Embedding , 1998, Math. Struct. Comput. Sci..

[20]  Atsushi Ohori,et al.  A Curry-Howard Isomorphism for Compilation and Program Execution , 1999, TLCA.