A fresh look at programming with names and binders
A fresh look at programming with names and binders
复制标题
重新审视名称和活页夹编程
DOI:
10.1145/1863543.1863575
复制
发表时间:
2010
期刊:
影响因子:
--
通讯作者:
F. Pottier
中科院分区:
文献类型:
--
作者:
N. Pouillard;F. Pottier
A wide range of computer programs, including compilers and theorem provers, manipulate data structures that involve names and binding. However, the design of programming idioms which allow performing these manipulations in a safe and natural style has, to a large extent, remained elusive.
In this paper, we present a novel approach to the problem. Our proposal can be viewed either as a programming language design or as a library: in fact, it is currently implemented within Agda. It provides a safe and expressive means of programming with names and binders. It is abstract enough to support multiple concrete implementations: we present one in nominal style and one in de Bruijn style. We use logical relations to prove that "well-typed programs do not mix names with different scope". We exhibit an adequate encoding of Pitts-style nominal terms into our system.