Romeo

Current languages for safely manipulating values with names only support term languages with simple binding syntax. As a result, no tools exist to safely manipulate code written in those languages for which name problems are the most challenging. We address this problem with Romeo, a language that respects α-equivalence on its values, and which has access to a rich specification language for binding, inspired by attribute grammars. Our work has the complex-binding support of David Herman's λm, but is a full-fledged binding-safe language like Pure FreshML.

[1]  François Pottier,et al.  Static Name Control for FreshML , 2007, 22nd Annual IEEE Symposium on Logic in Computer Science (LICS 2007).

[2]  Christian Urban,et al.  Nominal Techniques in Isabelle/HOL , 2005, Journal of Automated Reasoning.

[3]  Matthew Flatt Binding as sets of scopes , 2016, POPL.

[4]  Sebastian Erdweg,et al.  Capture-Avoiding and Hygienic Program Transformations , 2014, ECOOP.

[5]  Nicolas Halbwachs,et al.  Tools and Algorithms for the Construction and Analysis of Systems , 2005, Lecture Notes in Computer Science.

[6]  Fabian Muehlboeck Checking binding hygiene statically , 2013 .

[7]  Robert Hieb,et al.  Syntactic abstraction in scheme , 1992, LISP Symb. Comput..

[8]  Jonathan Rees,et al.  Macros that work , 1991, POPL '91.

[9]  François Pottier,et al.  A unified treatment of syntax with binders , 2012, J. Funct. Program..

[10]  Randy Pollack,et al.  A Canonical Locally Named Representation of Binding , 2012, Journal of Automated Reasoning.

[11]  Mitchell Wand,et al.  A Theory of Hygienic Macros , 2008, ESOP.

[12]  David Herman,et al.  A theory of typed hygienic macros , 2010 .

[13]  Amr Sabry,et al.  Macros as multi-stage computations: type-safe, generative, binding macros in MacroML , 2001, ICFP '01.

[14]  François Pottier,et al.  A fresh look at programming with names and binders , 2010, ICFP '10.

[15]  Sebastian Erdweg,et al.  Sound type-dependent syntactic language extension , 2016, POPL.

[16]  Matthias Felleisen,et al.  Hygienic macro expansion , 1986, LFP '86.

[17]  Franz Baader,et al.  Automated Deduction – CADE-19 , 2003, Lecture Notes in Computer Science.

[18]  Benjamin C. Pierce,et al.  Mechanized Metatheory for the Masses: The PoplMark Challenge , 2005, TPHOLs.

[19]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[20]  Tom Ridge,et al.  Ott: effective tool support for the working semanticist , 2007, ICFP '07.

[21]  Michael D. Adams Towards the Essence of Hygiene , 2015, POPL.

[22]  Andrew M. Pitts,et al.  FreshML: programming with binders made simple , 2003, ICFP '03.