Skip to main navigation Skip to search Skip to main content

Type safe incremental rebinding

Research output: Contribution to journalArticlepeer-review

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.

Original languageEnglish
Pages (from-to)94-122
Number of pages29
JournalMathematical Structures in Computer Science
Volume27
Issue number2
DOIs
Publication statusPublished - 1 Feb 2017

Fingerprint

Dive into the research topics of 'Type safe incremental rebinding'. Together they form a unique fingerprint.

Cite this