TY - JOUR
T1 - Incremental Rebinding with Name Polymorphism
AU - Ancona, Davide
AU - Giannini, Paola
AU - Zucca, Elena
N1 - Publisher Copyright:
© 2016 The Authors. Published by Elsevier B.V.
PY - 2016/4/18
Y1 - 2016/4/18
N2 - We propose an extension with name variables of a calculus for incremental rebinding of code introduced in previous work. Names, which can be either constants or variables, are used as interface of fragments of code with free variables. Open code can be dynamically rebound by applying a rebinding, which is an association from names to terms. Rebinding is incremental, since rebindings can contain free variables as well, and can be manipulated by operators such as overriding and renaming. By using name variables, it is possible to write terms which are parametric in their nominal interface and/or in the way it is adapted, greatly enhancing expressivity. The type system is correspondingly extended by constrained name-polymorphic types, where simple inequality constraints prevent conflicts among parametric name interfaces.
AB - We propose an extension with name variables of a calculus for incremental rebinding of code introduced in previous work. Names, which can be either constants or variables, are used as interface of fragments of code with free variables. Open code can be dynamically rebound by applying a rebinding, which is an association from names to terms. Rebinding is incremental, since rebindings can contain free variables as well, and can be manipulated by operators such as overriding and renaming. By using name variables, it is possible to write terms which are parametric in their nominal interface and/or in the way it is adapted, greatly enhancing expressivity. The type system is correspondingly extended by constrained name-polymorphic types, where simple inequality constraints prevent conflicts among parametric name interfaces.
KW - incremental rebinding
KW - metaprogramming
KW - name polymorphism
KW - open code
UR - http://www.scopus.com/inward/record.url?scp=84963748856&partnerID=8YFLogxK
U2 - 10.1016/j.entcs.2016.03.003
DO - 10.1016/j.entcs.2016.03.003
M3 - Article
SN - 1571-0661
VL - 322
SP - 19
EP - 34
JO - Electronic Notes in Theoretical Computer Science
JF - Electronic Notes in Theoretical Computer Science
ER -