Lambda lifting: transforming programs to recursive equations
Proc. of a conference on Functional programming languages and computer architecture
Introduction to combinators and &lgr;-calculus
Introduction to combinators and &lgr;-calculus
Information and Control
On the efficiency of categorical combinators as a rewriting system
Software—Practice & Experience
The categorical abstract machine
Science of Computer Programming
TIM: A simple, lazy abstract machine to execute supercombinators
Proc. of a conference on Functional programming languages and computer architecture
Journal of Symbolic Computation
Path of subterms ordering and recursive decomposition ordering revisited
Journal of Symbolic Computation
Needed reduction and spine strategies for the lambda calculus
Information and Computation
Church-Rosser theorem for a rewriting system on categorical combinators
Theoretical Computer Science
Confluence results for the pure strong categorical logic CCL. &lgr;-calculi as subsystems of CCL
Theoretical Computer Science
An algorithm for optimal lambda calculus reduction
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Categorical combinators, sequential algorithms, and functional programming (2nd ed.)
Categorical combinators, sequential algorithms, and functional programming (2nd ed.)
Efficient compilation of lazy evaluation
SIGPLAN '84 Proceedings of the 1984 SIGPLAN symposium on Compiler construction
An algebraic interpretation of the lambda beta - calculus and a labeled lambda - calculus
Proceedings of the Symposium on Lambda-Calculus and Computer Science Theory
Two-level expression representation for faster evaluation
Proceedings of the 2nd International Workshop on Graph-Grammars and Their Application to Computer Science
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
POPL '76 Proceedings of the 3rd ACM SIGACT-SIGPLAN symposium on Principles on programming languages
The Implementation of Functional Programming Languages (Prentice-Hall International Series in Computer Science)
Incremental reduction in the lambda calculus
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Optimal derivations in weak lambda-calculi and in orthogonal term rewriting systems
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The geometry of optimal lambda reduction
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Optimal reduction in weak-&lgr;-calculus with shared environments
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
A call-by-need lambda calculus
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Confluence properties of weak and strong calculi of explicit substitutions
Journal of the ACM (JACM)
Analysis and caching of dependencies
Proceedings of the first ACM SIGPLAN international conference on Functional programming
Optimality and inefficiency: what isn't a cost model of the lambda calculus?
Proceedings of the first ACM SIGPLAN international conference on Functional programming
On global dynamics of optimal graph reduction
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Implementing typed intermediate languages
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Improvement in a lazy context: an operational theory for call-by-need
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Parallel beta reduction is not elementary recursive
Information and Computation
Explicit Substitutions and Programming Languages
Proceedings of the 19th Conference on Foundations of Software Technology and Theoretical Computer Science
The call-by-need lambda calculus
Journal of Functional Programming
The call-by-need lambda calculus
Journal of Functional Programming
Choices in Representation and Reduction Strategies for Lambda Terms in Intensional Contexts
Journal of Automated Reasoning
A treatment of higher-order features in logic programming
Theory and Practice of Logic Programming
Complete Laziness: a Natural Semantics
Electronic Notes in Theoretical Computer Science (ENTCS)
Minimality in a Linear Calculus with Iteration
Electronic Notes in Theoretical Computer Science (ENTCS)
Abstract Conditions for the Confluence of Explicit Substitution Calculi
Electronic Notes in Theoretical Computer Science (ENTCS)
Call-by-name and call-by-value as token-passing interaction nets
TLCA'05 Proceedings of the 7th international conference on Typed Lambda Calculi and Applications
Linear Logic, Comonads And Optimal Reductions
Fundamenta Informaticae
Hi-index | 0.02 |
In this paper, I introduce a new formal system, ACCL, based on Curien's Categorical Combinators [Cur86a]. I show that ACCL has properties not possessed by Curien's original combinators that make it particularly appropriate as the basis for implementation and analysis of a wide range of reduction schemes using shared environments, closures, or &lgr;-terms. As an example of the practical utility of this formalism, I use it to specify a simple lazy interpreter for the &lgr;-calculus, whose correctness follows trivially from the properties of ACCL.I then describe a labeled variant of ACCL, ACCLL, which can be used as a tool to determine the degree of “laziness” possessed by various &lgr;-reduction schemes. In particular, ACCLL is applied to the problem of optimal reduction in the &lgr;-calculus. A reduction scheme for the &lgr;-calculus is optimal if the number of redex contractions that must be performed in the course of reducing any &lgr;-term to a normal form (if one exists) is guaranteed to be minimal. Results of Lévy [Lév78,Lév80] showed that for a natural class of reduction strategies allowing shared redexes, optimal reductions were, at least in principle, possible. He conjectured that an optimal reduction strategy might be realized in practice using shared closures and environments as well as shared &lgr;-terms. I show, however, using ACCLL, a practical optimal reduction scheme for arbitrary &lgr;-terms using only shared environments, closures, or terms is unlikely to exist.