skip to main content
article

Generative unbinding of names

Published:17 January 2007Publication History
Skip Abstract Section

Abstract

This paper is concerned with a programming language construct for typed name binding that enforces αequivalence. It proves a new result about what operations on names can co-exist with this construct. The particular form of typed name binding studied is that used by the FreshML family of languages. Its characteristic feature is that a name binding is represented by an abstract (name,value)-pair that may only be deconstructed via the generation of fresh bound names. In FreshML the only observation one can make of names is to test whether or not they are equal. This restricted amount of observation was thought necessary to ensure that there is no observable difference between αequivalent name binders. Yet from an algorithmic point of view it would be desirable to allow other operations and relations on names, such as a total ordering. This paper shows that, contrary to expectations, one may add not just ordering, but almost any relation or numerical function on names without disturbing the fundamental correctness result about this form of typed name binding (that object-level αequivalence precisely corresponds to contextual equivalence at the programming meta-level), so long as one takes the state of dynamically created names into account.

References

  1. B. E. Aydemir, A. Bohannon, M. Fairbairn, J. N. Foster, B. C. Pierce, P. Sewell, D. Vytiniotis, G. Washburn, S. Weirich, and S. Zdancewic. Mechanised metatheory for the masses: The POPLmark challenge. In 18th International Conference on Theorem Proving in Higher Order Logics: TPHOLs 2005, volume 3603 of Lecture Notes in Computer Science, pages 50--65. Springer-Verlag, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. P. N. Benton and X. Leroy, editors. ACM SIGPLAN Workshop on ML (ML 2005), Tallinn, Estonia, Electronic Notes in Theoretical Computer Science. Elsevier, 2005.Google ScholarGoogle Scholar
  3. J. Cheney. Scrap your nameplate (functional pearl). In 10th ACM SIGPLAN Int. Conference on Functional Programming (ICFP'05), Tallinn, Estonia, pages 180--191. ACM Press, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. M. Felleisen and R. Hieb. The revised report on the syntactic theories of sequential control and state. Theoretical Computer Science, 103:235--271, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. C. Flanagan, A. Sabry, B. F. Duba, and M. Felleisen. The essence of compiling with continuations. In Proceedings ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI'93, Albuquerque, NM, USA, pages 237--247. ACM Press, June 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. M. J. Gabbay and A. M. Pitts. A new approach to abstract syntax with variable binding. Formal Aspects of Computing, 13:341--363, 2001.Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. A. D. Gordon. Operational equivalences for untyped and polymorphic object calculi. In Gordon and Pitts {8}, pages 9--54. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. A. D. Gordon and A. M. Pitts, editors. Higher Order Operational Techniques in Semantics. Publications of the Newton Institute. Cambridge University Press, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. C. A. Gunter. Semantics of Programming Languages: Structures and Techniques. Foundations of Computing. MIT Press, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. D. J. Howe. Proving congruence of bisimulation in functional programming languages. Information and Computation, 124(2):103--112, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. S. B. Lassen. Relational reasoning about contexts. In Gordon and Pitts {8}, pages 91--135. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. I. A. Mason and C. L. Talcott. Equivalence in functional languages with effects. Journal of Functional Programming, 1:287--327, 1991.Google ScholarGoogle ScholarCross RefCross Ref
  13. T. Nipkow, L. C. Paulson, and M. Wenzel. Isabelle/HOL---A Proof Assistant for Higher-Order Logic, volume 2283 of Lecture Notes in Computer Science. Springer-Verlag, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. C. Okasaki and A. Gill. Fast mergeable integer maps. In ACM-SIGPLAN Workshop on ML, Baltimore, Maryland, USA, pages 77--86. ACM Press, 1998.Google ScholarGoogle Scholar
  15. F. Pfenning. Logical frameworks. In A. Robinson and A. Voronkov, editors, Handbook of Automated Reasoning, chapter 17, pages 1063--1147. Elsevier Science and MIT Press, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. A. M. Pitts. Operational semantics and program equivalence. In Applied Semantics, Advanced Lectures, volume 2395 of Lecture Notes in Computer Science, Tutorial, pages 378--412. Springer-Verlag, 2002. International Summer School, APPSEM 2000, Caminha, Portugal, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. A. M. Pitts. Nominal logic, a first order theory of names and binding. Information and Computation, 186:165--193, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. A. M. Pitts. Typed operational reasoning. In B. C. Pierce, editor, Advanced Topics in Types and Programming Languages, chapter 7, pages 245--289. The MIT Press, 2005.Google ScholarGoogle Scholar
  19. A. M. Pitts. Alpha-structural recursion and induction. Journal of the ACM, 53(3):459--506, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. A. M. Pitts and M. J. Gabbay. A metalanguage for programming with bound names modulo renaming. In 5th Int. Conference on Mathematics of Program Construction (MPC2000), Ponte de Lima, Portugal, volume 1837 of Lecture Notes in Computer Science, pages 230--255. Springer-Verlag, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. F. Pottier. An overview of Cαml. In Benton and Leroy {2}, pages 27--52.Google ScholarGoogle Scholar
  22. F. Pottier. Static name control for FreshML. Draft, July 2006.Google ScholarGoogle Scholar
  23. M. R. Shinwell. The Fresh Approach: Functional Programming with Names and Binders. PhD thesis, University of Cambridge Computer Laboratory, 2005. Available as University of Cambridge Computer Laboratory Technical Report UCAM-CL-TR-618.Google ScholarGoogle Scholar
  24. M. R. Shinwell. Fresh O'Caml: Nominal abstract syntax for the masses. In Benton and Leroy {2}, pages 53--76. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. M. R. Shinwell and A. M. Pitts. On a monadic semantics for freshness. Theoretical Computer Science, 342:28--55, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. M. R. Shinwell, A. M. Pitts, and M. J. Gabbay. FreshML: Programming with binders made simple. In 8th ACM SIGPLAN Int. Conference on Functional Programming(ICFP 2003), Uppsala, Sweden, pages 263--274. ACM Press, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. C. Urban and S. Berghofer. A recursion combinator for nominal datatypes implemented in Isabelle/HOL. In 3rd International Joint Conference on Automated Reasoning (IJCAR 2006), Seattle, USA, volume 4130 of Lecture Notes in Computer Science, pages 498--512. Springer-Verlag, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. C. Urban and M. Norrish. A formal treatment of the Barendregt Variable Convention in rule inductions. In 3rd ACM SIGPLAN Workshop on Mechanized Reasoning about Languages with Variable Binding (MERLIN '05), Tallinn, Estonia, pages 25--32. ACM Press, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. C. Urban, A. M. Pitts, and M. J. Gabbay. Nominal unification. Theoretical Computer Science, 323:473--497, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Generative unbinding of names

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          • Published in

            cover image ACM SIGPLAN Notices
            ACM SIGPLAN Notices  Volume 42, Issue 1
            Proceedings of the 2007 POPL Conference
            January 2007
            379 pages
            ISSN:0362-1340
            EISSN:1558-1160
            DOI:10.1145/1190215
            Issue’s Table of Contents
            • cover image ACM Conferences
              POPL '07: Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
              January 2007
              400 pages
              ISBN:1595935754
              DOI:10.1145/1190216

            Copyright © 2007 ACM

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 17 January 2007

            Check for updates

            Qualifiers

            • article

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader
          About Cookies On This Site

          We use cookies to ensure that we give you the best experience on our website.

          Learn more

          Got it!