Skip to main content

The \(\nabla\)-Calculus. Functional Programming with Higher-Order Encodings

  • Conference paper
Typed Lambda Calculi and Applications (TLCA 2005)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 3461))

Included in the following conference series:

Abstract

Higher-order encodings use functions provided by one language to represent variable binders of another. They lead to concise and elegant representations, which historically have been difficult to analyze and manipulate.

In this paper we present the \(\nabla\)-calculus, a calculus for defining general recursive functions over higher-order encodings. To avoid problems commonly associated with using the same function space for representations and computations, we separate one from the other. The simply-typed λ-calculus plays the role of the representation-level. The computation-level contains not only the usual computational primitives but also an embedding of the representation-level. It distinguishes itself from similar systems by allowing recursion under representation-level λ-binders while permitting a natural style of programming which we believe scales to other logical frameworks. Sample programs include bracket abstraction, parallel reduction, and an evaluator for a simple language with first-class continuations.

This research has been funded by NSF grants CCR-0325808 and CCR-0133502.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Coquand, T.: An algorithm for testing conversion in type theory. In: Huet, G., Plotkin, G. (eds.) Logical Frameworks, pp. 255–279. Cambridge University Press, Cambridge (1991)

    Chapter  Google Scholar 

  2. Gabbay, M., Pitts, A.: A new approach to abstract syntax involving binders. In: Longo, G. (ed.) Proceedings of the 14th Annual Symposium on Logic in Computer Science (LICS 1999), Trento, Italy, pp. 214–224. IEEE Computer Society Press, Los Alamitos (1999)

    Google Scholar 

  3. Honsell, F., Miculan, M., Scagnetto, I.: π-calculus in (Co)inductive-type theory. Theoretical Computer Science 253(2), 239–285 (2001)

    Article  MATH  MathSciNet  Google Scholar 

  4. Hofmann, M.: Semantical analysis for higher-order abstract syntax. In: Longo, G. (ed.) Proceedings of the 14th Annual Symposium on Logic in Computer Science (LICS 1999), Trento, Italy, pp. 204–213. IEEE Computer Society Press, Los Alamitos (1999)

    Google Scholar 

  5. Momigliano, A., Ambler, S., Crole, R.: A definitional approach to primitive recursion over higher order abstract syntax. In: Momigliano, A., Miculan, M. (eds.) Proceedings of the Merlin Workshop. ACM Press, Uppsala (2003)

    Google Scholar 

  6. Miller, D.: An extension to ML to handle bound variables in data structures: Preliminary report. In: Proceedings of the Logical Frameworks BRA Workshop, Nice, France (May 1990)

    Google Scholar 

  7. Paulin-Mohring, C.: Inductive definitions in the system Coq: Rules and properties. In: Bezem, M., Groote, J.F. (eds.) TLCA 1993. LNCS, vol. 664, pp. 328–345. Springer, Heidelberg (1993)

    Chapter  Google Scholar 

  8. Poswolsky, A., Schürmann, C.: Elphin user’s manual. Technical report, Yale University (2005) (to appear), See also http://www.cs.yale.edu/~delphin

  9. Schürmann, C.: Recursion for higher-order encodings. In: Fribourg, L. (ed.) CSL 2001 and EACSL 2001. LNCS, vol. 2142, pp. 585–599. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  10. Schürmann, C., Despeyroux, J., Pfenning, F.: Primitive recursion for higher-order abstract syntax. Theoretical Computer Science 266, 1–57 (2001)

    Article  MATH  MathSciNet  Google Scholar 

  11. Schürmann, C., Poswolsky, A., Sarnat, J.: The \(\nabla\)-calculus. Functional programming with higher-order encodings. Technical Report YALEU/DCS/TR-1272, Yale University (October 2004)

    Google Scholar 

  12. Taha, W., Sheard, T.: MetaML: Multi-stage programming with explicit annotations. Theoretical Computer Science 248, 1–2 (2000)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2005 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Schürmann, C., Poswolsky, A., Sarnat, J. (2005). The \(\nabla\)-Calculus. Functional Programming with Higher-Order Encodings. In: Urzyczyn, P. (eds) Typed Lambda Calculi and Applications. TLCA 2005. Lecture Notes in Computer Science, vol 3461. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11417170_25

Download citation

  • DOI: https://doi.org/10.1007/11417170_25

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-25593-2

  • Online ISBN: 978-3-540-32014-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics