Results 1 
4 of
4
A Taxonomy of Functional Language Implementations Part II: CallbyName, CallbyNeed and Graph Reduction
, 1996
"... In Part I [5], we proposed an approach to formally describe and compare functional languages implementations. We focused on callbyvalue and described wellknown compilers for strict languages. Here, we complete our exploration of the design space of implementations by studying callbyname, cal ..."
Abstract

Cited by 10 (4 self)
 Add to MetaCart
In Part I [5], we proposed an approach to formally describe and compare functional languages implementations. We focused on callbyvalue and described wellknown compilers for strict languages. Here, we complete our exploration of the design space of implementations by studying callbyname, callbyneed and graph reduction. We express the whole compilation process as a succession of program transformations in a common framework. At each step, different transformations model fundamental choices or optimizations. We describe and compare the diverse alternatives for the compilation of the callbyname strategy in both environment and graphbased models. The different options for the compilation of breduction described in [5] can be applied here as well. Instead, we describe other possibilities specific to graph reduction. Callbyneed is nothing but callbyname with redex sharing and update. We present how sharing can be expressed in our framework and we describe different...
What is an Efficient Implementation of the λcalculus?
, 1991
"... We propose to measure the e#ciency of any implementation of the # calculus as a function of a new parameter #, that is itself a function of any #expression. Complexity is expressed here as a function of # just as runtime is expressed as a function of the input size n in ordinary analysis of alg ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
We propose to measure the e#ciency of any implementation of the # calculus as a function of a new parameter #, that is itself a function of any #expression. Complexity is expressed here as a function of # just as runtime is expressed as a function of the input size n in ordinary analysis of algorithms. This enables implementations to be compared for worst case e#ciency. We argue that any implementation must have complexity #(#), i.e. a linear lower bound. Furthermore, we show that implementations based upon Turner Combinators or Hughes Supercombinators have complexities 2 #(#) , i.e. an exponential lower bound. It is open whether any implementation of polynomial complexity, # O(1) , exists, although some implementations have been implicitly claimed to have this complexity. Introduction Objectives The aim of this paper is to provide a theoretical basis for e#ciency considerations in the implementation of functional languages. So far, people working in this area have approa...
What is an Efficient Implementation of the λcalculus?
, 1991
"... We propose to measure the efficiency of any implementation of the λcalculus as a function of a new parameter ν, that is itself a function of any λexpression. Complexity is expressed here as a function of ν just as runtime is expressed as a function of the input size n in ordinary analysis of algori ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
We propose to measure the efficiency of any implementation of the λcalculus as a function of a new parameter ν, that is itself a function of any λexpression. Complexity is expressed here as a function of ν just as runtime is expressed as a function of the input size n in ordinary analysis of algorithms. This enables implementations to be compared for worst case efficiency. We argue that any implementation must have complexity Ω(ν), i.e. a linear lower bound. Furthermore, we show that implementations based upon Turner Combinators or Hughes Supercombinators have complexities 2 Ω(ν), i.e. an exponential lower bound. It is open whether any implementation of polynomial complexity, ν O(1), exists, although some implementations have been implicitly claimed to have this complexity.
HigherOrder Rigid EUnification
 5th International Conference on Logic Programming and Automated Reasoning', number 822 in `Lecture Notes in Artificial Intelligence
"... . Higherorder Eunification, i.e. the problem of finding substitutions that make two simply typed terms equal modulo fi or fij equivalence and a given equational theory, is undecidable. We propose to rigidify it, to get a resourcebounded decidable unification problem (with arbitrary high bound ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
. Higherorder Eunification, i.e. the problem of finding substitutions that make two simply typed terms equal modulo fi or fij equivalence and a given equational theory, is undecidable. We propose to rigidify it, to get a resourcebounded decidable unification problem (with arbitrary high bounds), providing a complete higherorder Eunification procedure. The techniques are inspired from Gallier's rigid Eunification and from Dougherty and Johann's use of combinatory logic to solve higherorder Eunification problems. We improve their results by using general equational theories, and by defining optimizations such as higherorder rigid Epreunification, where flexible terms are used, gaining much efficiency, as in the nonequational case due to Huet. 1 Introduction Higherorder Eunification is the problem of finding complete sets of unifiers of two simply typed terms modulo fi or fijequivalence, and modulo an equational theory E . This problem has applications in higherorder a...