We investigate implementation techniques arising directly from Girard's Geometry of Interaction semantics for Linear Logic, specifically for a simple functional programming language (PCF). This gives rise to a very simple, compact, compilation schema and run-time system. We analyse various properties of this kind of computation that suggest substantial optimisations that could make this paradigm of implementation not only practical, but potentially more efficient than extant paradigms.
We present a generalisation of first-order rewriting which allows us to deal with terms involving binding operations in an elegant and practical way. We use a nominal approach to binding, in which bound entities are explicitly named (rather than using a nameless syntax such as de Bruijn indices), yet we get a rewriting formalism which respects α-conversion and can be directly implemented. This is achieved by adapting to the rewriting framework the powerful techniques developed by Pitts et al. in the FreshML project.Nominal rewriting can be seen as higher-order rewriting with a first-order syntax and built-in α-conversion. We show that standard (first-order) rewriting is a particular case of nominal rewriting, and that very expressive higher-order systems such as Klop's Combinatory Reduction Systems can be easily defined as nominal rewriting systems. Finally we study confluence properties of nominal rewriting.
We take Abramsky's term assignment for Intuitionistic Linear Logic (the linear term calculus) as the basis of a functional programming language. This is a language where the programmer must embed explicitly the resource and control information of an algorithm. We give a type reconstruction algorithm for our language in the style of Milner's W algorithm, together with a description of the implementation and examples of use.
Starting from the λ-calculus with names, we develop a family of calculi with explicit substitutions that overcome the usual syntactical problems of substitution. The key idea is that only closed substitutions can be moved through certain constructs. This gives a weak form of reduction, called closed reduction, which is rich enough to capture both the call-by-value and call-by-name evaluation strategies in the λ-calculus. Moreover, since substitutions can move through abstractions and reductions are allowed under abstractions (if certain conditions hold), closed reduction naturally provides an efficient notion of reduction with a high degree of sharing and low overheads. We present a family of abstract machines for closed reduction. Our benchmarks show that closed reduction performs better than all standard weak strategies, and its low overheads make it more efficient than optimal reduction in many cases.M. Fernández, I. Mackie and F-R. Sinot 344 studies of explicit substitutions the following properties are considered foremost:simulation of β-reduction in full generality;preservation of strong normalisation;confluence on open or on ground terms.Such properties are clearly desirable for a complete study of β-reduction, and are also essential for some applications, see, for instance, Dowek et al. (2001). However, if we are only interested in using the λ-calculus for implementation based studies, β-reduction does not need to be simulated in full generality, and, in particular, poor strategies should be eliminated. Additionally, confluence on open terms is no longer an essential property. However, preservation of strong normalisation does, of course, remain a useful property. In this paper we study λ-calculi with explicit substitutions specifically for the implementation of the λ-calculus in an efficient way: substitutions are needed to express computational aspects of β-reduction such as copying and erasing of terms.The λ-calculus with names is often considered an inconvenient starting point for the study of explicit substitutions because variables require renaming during reduction, and consequently new names need to be generated dynamically (α-conversion is costly). It is because of this 'defect' that most explicit substitution calculi use de Bruijn notation (de Bruijn 1972). Thus, explicit substitution calculi have become synonymous with de Bruijn notation (although there are exceptions, see, for instance, Rose (1996)). The main advantage of this notation is that it avoids generating new variable names, and has also been claimed to be closer to an implementation. However, new problems are introduced:-Shifting operations (incrementing numbers) are needed, which is essentially encoding the generation of new names.-Substitutions are often represented as lists, which implies that new operations are needed to manipulate this structure.-Properties such as confluence and preservation of strong normalisation cannot be easily obtained (see, for instance, David and Guillaume (2001)).Closed reduction: explicit substitutions ...
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.