The categorical abstract machine
Proc. of a conference on Functional programming languages and computer architecture
Lambda lifting: transforming programs to recursive equations
Proc. of a conference on Functional programming languages and computer architecture
Complexity of the combinator reduction machine
Theoretical Computer Science
Introduction to combinators and &lgr;-calculus
Introduction to combinators and &lgr;-calculus
Variable abstraction in O(n log n) space
Information Processing Letters
Implementing functional languages
Implementing functional languages
Categorical combinators, sequential algorithms, and functional programming (2nd ed.)
Categorical combinators, sequential algorithms, and functional programming (2nd ed.)
SKIM - The S, K, I reduction machine
LFP '80 Proceedings of the 1980 ACM conference on LISP and functional programming
Combinatory formulations of concurrent languages
ACM Transactions on Programming Languages and Systems (TOPLAS)
ESOP '99 Proceedings of the 8th European Symposium on Programming Languages and Systems
Closed Reductions in the lambda-Calculus
CSL '99 Proceedings of the 13th International Workshop and 8th Annual Conference of the EACSL on Computer Science Logic
Sequent combinators: a Hilbert system for the lambda calculus
Mathematical Structures in Computer Science
Efficient reductions with director strings
RTA'03 Proceedings of the 14th international conference on Rewriting techniques and applications
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Bottom-up β-reduction: Uplinks and λ-DAGs
Fundamenta Informaticae - From Mathematical Beauty to the Truth of Nature: to Jerzy Tiuryn on his 60th Birthday
Bottom-up β-reduction: uplinks and λ-DAGs
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
Hi-index | 0.00 |
A simple calculus (the Director String Calculus-DSC) for expressing abstractions is introduced, which captures the essence of the “long reach” combinators introduced by Turner. We present abstraction rules that preserve the applicative structure of the original lambda term, and that cannot increase the number of subterms in the translation.A translated lambda term can be reduced according to the evaluation rules of DSC. If this terminates with a DSC normal form, this can be translated into a lambda term using rules presented below. We call this process of abstracting a lambda term, reducing to normal form in the space of DSC terms, and translating back to a lambda term an implementation.We show that our implementation of the lambda calculus is correct: For lambda terms with a normal form that contains no lambdas (ground terms), the implementation is shown to yield a lambda calculus normal form. For lambda terms whose normal forms represent functions, it is shown that the implementation yields lambda terms that are beta-convertible in zero or more steps to the normal form of the original lambda term. In this sense, our implementation involves weak reduction according to Hindley et al. [9].