Skip to main content

Normalization by Evaluation for the Computational Lambda-Calculus

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2044))

Abstract

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.

Basic Research in Computer Science (www.brics.dk), funded by the Danish National Research Foundation.

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. Thorsten Altenkirch, Martin Hofmann, and Thomas Streicher. Categorical reconstruction of a reduction free normalization proof. In Category Theory and Computer Science, 6th International Conference, number 953 in Lecture Notes in Computer Science, 1995.

    Google Scholar 

  2. Ulrich Berger. Program extraction from normalization proofs. In M. Bezem and J. F. Groote, editors, Typed Lambda Calculi and Applications, number 664 in Lecture Notes in Computer Science, pages 91–106, Utrecht, The Netherlands, March 1993.

    Chapter  Google Scholar 

  3. Ulrich Berger, Matthias Eberl, and Helmut Schwichtenberg. Normalization by evaluation. In Prospects for Hardware Foundations (NADA), number 1546 in Lecture Notes in Computer Science, pages 117–137, 1998.

    Chapter  Google Scholar 

  4. Ulrich Berger and Helmut Schwichtenberg. An inverse of the evaluation functional for typed λ-calculus. In Proceedings of the Sixth Annual IEEE Symposium on Logic in Computer Science, pages 203–211, Amsterdam, The Netherlands, July 1991.

    Google Scholar 

  5. Thierry Coquand and Peter Dybjer. Intuitionistic model constructions and normalization proofs. Mathematical Structures in Computer Science, 7:75–94, 1997.

    Article  MATH  MathSciNet  Google Scholar 

  6. Djordje ČubriČ, Peter Dybjer, and Philip Scott. Normalization and the Yoneda embedding. Mathematical Structures in Computer Science, 8:153–192, 1998.

    Article  MATH  Google Scholar 

  7. Olivier Danvy. Type-directed partial evaluation. In J. Hatcliff, T.æ. Mogensen, and P. Thieman, editors, Partial Evaluation — Practice and Theory; Proceedings of the 1998 DIKU Summer School, number 1706 in Lecture Notes in Computer Science, pages 367–411. Springer-Verlag, Copenhagen, Denmark, July 1998.

    Google Scholar 

  8. Olivier Danvy and Peter Dybjer, editors. Preliminary Proceedings of the APPSEM Workshop on Normalization by Evaluation. Department of Computer Science, University of Aarhus, May 1998. BRICS Note NS-98-1.

    Google Scholar 

  9. Olivier Danvy and Andrzej Filinski. Representing control: A study of the CPS transformation. Mathematical Structures in Computer Science, 2(4):361–391, December 1992.

    Article  MATH  MathSciNet  Google Scholar 

  10. Andrzej Filinski. Representing layered monads. In Proceedings of the 26th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 175–188, San Antonio, Texas, January 1999.

    Google Scholar 

  11. Andrzej Filinski. A semantic account of type-directed partial evaluation. In G. Nadathur, editor, International Conference on Principles and Practice of Declarative Programming, number 1702 in Lecture Notes in Computer Science, pages 378–395, Paris, France, September 1999.

    Chapter  Google Scholar 

  12. Marcelo Fiore, Gordon Plotkin, and Daniele Turi. Abstract syntax and variable binding. In Proceedings of the 14th Annual IEEE Symposium on Logic in Computer Science, pages 193–202, Trento, Italy, July 1999.

    Google Scholar 

  13. Cormac Flanagan, Amr Sabry, Bruce F. Duba, and Matthias Felleisen. The essence of compiling with continuations. In Proceedings of the SIGPLAN’ 93 Conference on Programming Language Design and Implementation, pages 237–247, Albuquerque, New Mexico, June 1993.

    Google Scholar 

  14. Murdoch Gabbay and Andrew Pitts. A new approach to abstract syntax involving binders. In Proceedings of the 14th Annual IEEE Symposium on Logic in Computer Science, pages 214–224, Trento, Italy, July 1999.

    Google Scholar 

  15. Bernd Grobauer and Zhe Yang. The second Futamura projection for type-directed partial evaluation. In ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation, pages 22–32. ACM Press, January 2000.

    Google Scholar 

  16. Eugenio Moggi. Computational lambda-calculus and monads. In Proceedings of the Fourth Annual Symposium on Logic in Computer Science, pages 14–23, Pacific Grove, California, June 1989. IEEE.

    Google Scholar 

  17. Atsushi Ohori. A Curry-Howard isomorphism for compilation and program execution. In J.-Y. Girard, editor, Typed Lambda-Calculi and Applications, volume 1581 of Lecture Notes in Computer Science, L’Aquila, Italy, April 1999.

    Chapter  Google Scholar 

  18. Eijiro Sumii and Naoki Kobayashi. Online-and-offine partial evaluation: A mixed approach. In ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation, pages 12–21. ACM Press, January 2000.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2001 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Filinski, A. (2001). Normalization by Evaluation for the Computational Lambda-Calculus. In: Abramsky, S. (eds) Typed Lambda Calculi and Applications. TLCA 2001. Lecture Notes in Computer Science, vol 2044. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45413-6_15

Download citation

  • DOI: https://doi.org/10.1007/3-540-45413-6_15

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-41960-0

  • Online ISBN: 978-3-540-45413-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics