Acceptors as values: Functional programming in classical linear logic (1991)
| Citations: | 1 - 1 self |
BibTeX
@TECHREPORT{Reddy91acceptorsas,
author = {Uday S. Reddy},
title = {Acceptors as values: Functional programming in classical linear logic},
institution = {},
year = {1991}
}
OpenURL
Abstract
Girard’s linear logic has been previously applied to functional programming for performing state-manipulation and controlling storage reuse. These applications only use intuitionistic linear logic, the subset of linear logic that embeds intuitionistic logic. Full linear logic (called classical linear logic) is much richer than this subset. In this paper, we consider the application of classical linear logic to functional programming. The negative types of linear logic are interpreted as denoting acceptors. An acceptor is an entity which takes an input of some type and returns no output. Acceptors generalize continuations and also single assignment variables, as found in data flow languages and logic programming languages. The parallel disjunction operator allows such acceptors to be used in a nontrivial fashion. Finally, the “why not ” operator of linear logic gives rise to nondeterministic values. We define a typed functional language based on the these ideas and demonstrate its use via examples. The language has a reduction semantics that generalizes typed lambda calculus, and satisfies strong normalization and Church-Rosser properties.







