FreshML: programming with binders made simple. FreshML extends ML with elegant and practical constructs for declaring and manipulating syntactical data involving statically scoped binding operations. User-declared FreshML datatypes involving binders are concrete, in the sense that values of these types can be deconstructed by matching against patterns naming bound variables explicitly. This may have the computational effect of swapping bound names with freshly generated ones; previous work on FreshML used a complicated static type system inferring information about the ’freshness’ of names for expressions in order to tame this effect. The main contribution of this paper is to show (perhaps surprisingly) that a standard type system without freshness inference, coupled with a conventional treatment of fresh name generation, suffices for FreshML’s crucial correctness property that values of datatypes involving binders are operationally equivalent if and only if they represent a-equivalent pieces of object-level syntax. This is established via a novel denotational semantics. FreshML without static freshness inference is no more impure than ML and experience with it shows that it supports a programming style pleasingly close to informal practice when it comes to dealing with object-level syntax modulo a-equivalence.

This software is also peer reviewed by journal TOMS.

References in zbMATH (referenced in 29 articles )

Showing results 1 to 20 of 29.
Sorted by year (citations)

1 2 next

  1. Ancona, Davide; Giannini, Paola; Zucca, Elena: Incremental rebinding with name polymorphism (2016)
  2. Pitts, Andrew M.; Matthiesen, Justus; Derikx, Jasper: A dependent type theory with abstractable names (2015)
  3. Clouston, Ranald: Generalised name abstraction for nominal sets (2013)
  4. Charguéraud, Arthur: The locally nameless representation (2012)
  5. Kurz, Alexander; Suzuki, Tomoyuki; Tuosto, Emilio: On nominal regular languages with binders (2012)
  6. Gabbay, Murdoch J.: Foundations of nominal techniques: logic and semantics of variables in abstract syntax (2011)
  7. Gabbay, Murdoch J.; Ciancia, Vincenzo: Freshness and name-restriction in sets of traces with names (2011)
  8. Pitts, Andrew M.: Structural recursion with locally scoped names (2011)
  9. Calvès, Christophe; Fernández, Maribel: Matching and alpha-equivalence check for nominal terms (2010)
  10. Pouillard, Nicolas; Pottier, François: A fresh look at programming with names and binders (2010)
  11. Schack-Nielsen, Anders; Schürmann, Carsten: Curry-style explicit substitutions for the linear and affine lambda calculus (2010)
  12. Sewell, Peter; Nardelli, Francesco Zappa; Owens, Scott; Peskine, Gilles; Ridge, Thomas; Sarkar, Susmit; Strniša, Rok: Ott: effective tool support for the working semanticist (2010)
  13. Bartoletti, Massimo; Degano, Pierpaolo; Ferrari, Gian Luigi; Zunino, Roberto: Hard life with weak binders (2009)
  14. Cervesato, Iliano; Scedrov, Andre: Relating state-based and process-based concurrency through linear logic (full-version) (2009)
  15. Licata, Daniel R.; Harper, Robert: A universe of binding and computation (2009)
  16. Calvès, Christophe; Fernández, Maribel: A polynomial nominal unification algorithm (2008)
  17. Stark, Ian: Free-algebra models for the $\pi $-calculus (2008)
  18. Fernández, Maribel; Gabbay, Murdoch J.: Nominal rewriting (2007)
  19. Gabbay, Murdoch J.: A general mathematics of names (2007)
  20. Sewell, Peter; Leifer, James J.; Wansbrough, Keith; Nardelli, Francesco Zappa; Allen-Williams, Mair; Habouzit, Pierre; Vafeiadis, Viktor: Acute: high-level programming language design for distributed computation (2007)

1 2 next