Freshml

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 37 articles )

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

1 2 next

  1. Ferreira, Francisco; Pientka, Brigitte: Programs using syntax with first-class binders (2017)
  2. Ancona, Davide; Giannini, Paola; Zucca, Elena: Incremental rebinding with name polymorphism (2016)
  3. Kiselyov, Oleg; Kameyama, Yukiyoshi; Sudo, Yuto: Refined environment classifiers. Type- and scope-safe code generation with mutable cells (2016)
  4. Pitts, Andrew M.; Matthiesen, Justus; Derikx, Jasper: A dependent type theory with abstractable names (2015)
  5. Lösch, Steffen; Pitts, Andrew M.: Denotational semantics with nominal Scott domains (2014)
  6. Clouston, Ranald: Generalised name abstraction for nominal sets (2013)
  7. Charguéraud, Arthur: The locally nameless representation (2012)
  8. Cheney, James: A dependent nominal type theory (2012)
  9. Kurz, Alexander; Suzuki, Tomoyuki; Tuosto, Emilio: On nominal regular languages with binders (2012)
  10. Calvès, Christophe; Fernández, Maribel: The first-order nominal link (2011)
  11. Fairweather, Elliot; Fernández, Maribel; Gabbay, Murdoch J.: Principal types for nominal theories (2011)
  12. Gabbay, Murdoch J.: Foundations of nominal techniques: logic and semantics of variables in abstract syntax (2011)
  13. Gabbay, Murdoch J.; Ciancia, Vincenzo: Freshness and name-restriction in sets of traces with names (2011)
  14. Pitts, Andrew M.: Structural recursion with locally scoped names (2011)
  15. Weirich, Stephanie; Yorgey, Brent A.; Sheard, Tim: Binders unbound (2011)
  16. Calvès, Christophe; Fernández, Maribel: Matching and alpha-equivalence check for nominal terms (2010)
  17. Pouillard, Nicolas; Pottier, François: A fresh look at programming with names and binders (2010)
  18. Schack-Nielsen, Anders; Schürmann, Carsten: Curry-style explicit substitutions for the linear and affine lambda calculus (2010)
  19. 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)
  20. Bartoletti, Massimo; Degano, Pierpaolo; Ferrari, Gian Luigi; Zunino, Roberto: Hard life with weak binders (2009)

1 2 next