Author:
ANCONA DAVIDE,GIANNINI PAOLA,ZUCCA ELENA
Abstract
We extend the simply-typed lambda-calculus with a mechanism for dynamic and incremental rebinding of code. Fragments of open code which can be dynamically rebound are values. Differently from standard static binding, which is done on a positional basis, rebinding is done on a nominal basis, that is, free variables in open code are associated with names which do not obey α-equivalence. Moreover, rebinding is incremental, that is, just a subset of names can be rebound, making possible code specialization, and rebinding can even introduce new names. Finally, rebindings, which are associations between names and terms, are first-class values, and can be manipulated by operators such as overriding and renaming. We define a type system in which the type for a rebinding, in addition to specify an association between names and types (similarly to record types), is also annotated. The annotation says whether or not the domain of the rebinding having this type may contain more names than the ones that are specified in the type. We show soundness of the type system.
Publisher
Cambridge University Press (CUP)
Subject
Computer Science Applications,Mathematics (miscellaneous)
Reference16 articles.
1. A Fresh Calculus for Name Management
2. Staged computation with names and necessity
3. A lambda-calculus for dynamic binding
4. Ancona D. , Giannini P. and Zucca E. (2013). Reconciling positional and nominal binding. In: Graham-Lengrand S. and Paolini L. (eds.) ITRS'12 - Intersection types and Related Systems. Available at: http://bart.disi.unige.it/bibliography/papers/report/orders:year/author:4.
5. Featherweight Jigsaw — Replacing inheritance by composition in Java-like languages
Cited by
1 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Incremental Rebinding with Name Polymorphism;Electronic Notes in Theoretical Computer Science;2016-04