Skip to main content

A Metalanguage for Programming with Bound Names Modulo Renaming

  • Conference paper
Mathematics of Program Construction (MPC 2000)

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

Included in the following conference series:

Abstract

This paper describes work in progress on the design of an ML-style metalanguage FreshML for programming with recursively defined functions on user-defined, concrete data types whose constructors may involve variable binding. Up to operational equivalence, values of such FreshML data types can faithfully encode terms modulo α-conversion for a wide range of object languages in a straightforward fashion. The design of FreshML is ‘semantically driven’, in that it arises from the model of variable binding in set theory with atoms given by the authors in [7]. The language has a type constructor for abstractions over names ( = atoms) and facilities for declaring locally fresh names. Moreover, recursive definitions can use a form of pattern-matching on bound names in abstractions. The crucial point is that the FreshML type system ensures that these features can only be used in well-typed programs in ways that are insensitive to renaming of bound names.

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. Burstall, R., MacQueen, D., Sannella, D.: HOPE: An experimental applicative language. In: Proc. LISP Conference, Stanford CA, pp. 136–143. Stanford University (1980)

    Google Scholar 

  2. Burstall, R.M.: Design considerations for a functional programming language. In: Proc. of the Infotech State of the Art Conference, Copenhagen (1977)

    Google Scholar 

  3. Cousineau, G., Mauny, M.: The Functional Approach to Programming. Cambridge University Press, Cambridge (1998)

    MATH  Google Scholar 

  4. de Bruijn, N.G.: Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church-Rosser theorem. Indag. Math. 34, 381–392 (1972)

    Google Scholar 

  5. Fiore, M.P., Plotkin, G.D., Turi, D.: Abstract syntax and variable binding. In: 14th Annual Symposium on Logic in Computer Science, pp. 193–202. IEEE Computer Society Press, Washington (1999)

    Google Scholar 

  6. Gabbay, M.J.: A Theory of Inductive Definitions with α-Conversion: Semantics, Implementation, and Meta-Language. PhD thesis, Cambridge University (in preparation)

    Google Scholar 

  7. Gabbay, M.J., Pitts, A.M.: A new approach to abstract syntax involving binders. In: 14th Annual Symposium on Logic in Computer Science, pp. 214–224. IEEE Computer Society Press, Washington (1999)

    Google Scholar 

  8. Gordon, M.J.C., Melham, T.F.: Introduction to HOL. Cambridge University Press, Cambridge (1993)

    MATH  Google Scholar 

  9. Hofmann, M.: Semantical analysis of higher-order abstract syntax. In: 14th Annual Symposium on Logic in Computer Science, pp. 204–213. IEEE Computer Society Press, Washington (1999)

    Google Scholar 

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

    Google Scholar 

  11. Milner, R.: Communicating and Mobile Systems: the π-Calculus. Cambridge University Press, Cambridge (1999)

    Google Scholar 

  12. Milner, R., Tofte, M., Harper, R., MacQueen, D.: The Definition of Standard ML (Revised). MIT Press, Cambridge (1997)

    Google Scholar 

  13. Mitchell, J.C., Plotkin, G.D.: Abstract types have existential types. ACM Transactions on Programming Languages and Systems 10, 470–502 (1988)

    Article  Google Scholar 

  14. Paulson, L.C.: Isabelle: A Generic Theorem Prover. LNCS, vol. 828. Springer, Heidelberg (1994)

    MATH  Google Scholar 

  15. Peyton Jones, S., Hughes, J. (eds.): Report on the Programming Language Haskell 1998. A Non-strict Purely Functional Language (February 1999), Available from http://www.haskell.org

  16. Pfenning, F., Elliott, C.: Higher-order abstract syntax. In: Proc. ACM-SIGPLAN Conference on Programming Language Design and Implementation, pp. 199–208. ACM Press, New York (1988)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2000 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Pitts, A.M., Gabbay, M.J. (2000). A Metalanguage for Programming with Bound Names Modulo Renaming. In: Backhouse, R., Oliveira, J.N. (eds) Mathematics of Program Construction. MPC 2000. Lecture Notes in Computer Science, vol 1837. Springer, Berlin, Heidelberg. https://doi.org/10.1007/10722010_15

Download citation

  • DOI: https://doi.org/10.1007/10722010_15

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-67727-7

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

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics