POPL '76 Proceedings of the 3rd ACM SIGACT-SIGPLAN symposium on Principles on programming languages
Architectural issues in designing symbolic processors in optics
ISCA '87 Proceedings of the 14th annual international symposium on Computer architecture
A RISC architecture for symbolic computation
ASPLOS II Proceedings of the second international conference on Architectual support for programming languages and operating systems
Implementing functional languages on a combinator-based reduction machine
ACM SIGPLAN Notices
Demand-Driven Interpretation of FP Programs on a Data-Flow Multiprocessor
IEEE Transactions on Computers - Special issue on architectural support for programming languages and operating systems
Functional programming with combinators
Journal of Symbolic Computation
Graphinators and the duality of SIMD and MIMD
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
Comparing Two Functional Programming Systems
IEEE Transactions on Software Engineering
The Alonzo functional programming language
ACM SIGPLAN Notices
A fresh look at combinator graph reduction
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
Parallel graph reduction with the (v , G)-machine
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Compilation of functional languages by program transformation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Cache behavior of combinator graph reduction
ACM Transactions on Programming Languages and Systems (TOPLAS)
Total correctness by local improvement in the transformation of functional programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Optimality and inefficiency: what isn't a cost model of the lambda calculus?
Proceedings of the first ACM SIGPLAN international conference on Functional programming
Rules and strategies for transforming functional and logic programs
ACM Computing Surveys (CSUR)
Lambda-dropping: transforming recursive equations into programs with block structure
PEPM '97 Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
NORMA: a graph reduction processor
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
Semantics directed compiling for functional languages
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
Efficient compilation of lazy evaluation
SIGPLAN '84 Proceedings of the 1984 SIGPLAN symposium on Compiler construction
Extending higher-order deforestation: transforming programs to eliminate even more trees
Trends in functional programming
Specification and Correctness of Lambda Lifting
SAIG '00 Proceedings of the International Workshop on Semantics, Applications, and Implementation of Program Generation
Lambda-Lifting in Quadratic Time
FLOPS '02 Proceedings of the 6th International Symposium on Functional and Logic Programming
Proceedings of the 3rd ACM SIGPLAN international conference on Principles and practice of declarative programming
Higher-order unification and matching
Handbook of automated reasoning
A combinator-based compiler for a functional language
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Some practical methods for rapid combinator reduction
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
Experiments in diffused combinator reduction
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
Sequent combinators: a Hilbert system for the lambda calculus
Mathematical Structures in Computer Science
Specification and correctness of lambda lifting
Journal of Functional Programming
The call-by-need lambda calculus
Journal of Functional Programming
Predictive combinators: a method for efficient processing of combinatory Categorial Grammars
ACL '87 Proceedings of the 25th annual meeting on Association for Computational Linguistics
Efficient compilation of lazy evaluation
ACM SIGPLAN Notices - Best of PLDI 1979-1999
Fundamenta Informaticae - Program Transformation: Theoretical Foundations and Basic Techniques. Part 2
The Reduceron: Widening the von Neumann Bottleneck for Graph Reduction Using an FPGA
Implementation and Application of Functional Languages
Agent-oriented programming: from prolog to guarded definite clauses
Agent-oriented programming: from prolog to guarded definite clauses
The very lazy λ-calculus and the STEC machine
IFL'09 Proceedings of the 21st international conference on Implementation and application of functional languages
A unified approach to fully lazy sharing
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Run-time behavior of SASL programs: A performance study
Computer Languages
Fundamenta Informaticae - Program Transformation: Theoretical Foundations and Basic Techniques. Part 2
Atomic Lambda Calculus: A Typed Lambda-Calculus with Explicit Sharing
LICS '13 Proceedings of the 2013 28th Annual ACM/IEEE Symposium on Logic in Computer Science
Hi-index | 0.00 |
There is a growing interest nowadays in functional programming languages and systems, and in special hardware for executing them. Many of these implementations are based on a system called graph reduction (GR), in which a program is represented as a graph which is transformed, or reduced, by the machine until it represents the desired answer. The various graph reduction implementations differ in the structure of the “machine code” (the program graph) and the compilation algorithms necessary to produce it from a source language. This paper describes a new implementation method using super-combinators which is apparently more efficient than its predecessors. Consideration of the new method also helps clarify the relationships between several other graph-reduction schemes. This paper is necessarily brief, but a fuller account can be found in [Hughes]. The simplest machine language we shall consider consists of constants combined by function application. This is the language of constant applicative forms (cafs). Some of the constants are basic functions.