Skip to main navigation Skip to search Skip to main content

Constrained polymorphic types for a calculus with name variables

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

We extend the simply-typed lambda-calculus with a mechanism for dynamic rebinding of code based on parametric nominal interfaces. That is, we introduce values which represent single fragments, or families of named fragments, of open code, where free variables are associated with names which do not obey α-equivalence. In this way, code fragments can be passed as function arguments and manipulated, through their nominal interface, by operators such as rebinding, overriding and renaming. Moreover, 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. However, in order to prevent conflicts when instantiating name variables, the name-polymorphic types of such terms need to be equipped with simple inequality constraints. We show soundness of the type system.

Original languageEnglish
Title of host publication21st International Conference on Types for Proofs and Programs, TYPES 2015
EditorsTarmo Uustalu
PublisherSchloss Dagstuhl- Leibniz-Zentrum fur Informatik GmbH, Dagstuhl Publishing
Pages41-429
Number of pages389
ISBN (Electronic)9783959770309
DOIs
Publication statusPublished - 1 Mar 2018
Event21st International Conference on Types for Proofs and Programs, TYPES 2015 - Tallinn, Estonia
Duration: 18 May 201521 May 2015

Publication series

NameLeibniz International Proceedings in Informatics, LIPIcs
Volume69
ISSN (Print)1868-8969

Conference

Conference21st International Conference on Types for Proofs and Programs, TYPES 2015
Country/TerritoryEstonia
CityTallinn
Period18/05/1521/05/15

Keywords

  • Incremental rebinding
  • Metaprogram-ming
  • Name polymorphism
  • Open code

Fingerprint

Dive into the research topics of 'Constrained polymorphic types for a calculus with name variables'. Together they form a unique fingerprint.

Cite this