Lambda lifting: transforming programs to recursive equations
Proc. of a conference on Functional programming languages and computer architecture
Proc. of a conference on Functional programming languages and computer architecture
Target code generation from G-machine code
Proc. of a workshop on Graph reduction
TIM: A simple, lazy abstract machine to execute supercombinators
Proc. of a conference on Functional programming languages and computer architecture
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
The Computer Journal - Special issue on Lazy functional programming
Parallel graph reduction with the (v , G)-machine
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Implementing Haskell overloading
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Interprocedural register allocation for lazy functional languages
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Highlights from nhc—a space-efficient Haskell compiler
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Code generation techniques for functional languages
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
Communications of the ACM
A LISP garbage-collector for virtual-memory computer systems
Communications of the ACM
The next 700 programming languages
Communications of the ACM
Efficient compilation of lazy evaluation
SIGPLAN '84 Proceedings of the 1984 SIGPLAN symposium on Compiler construction
Dataflow and Reduction Architectures, Selected Reprints On
Dataflow and Reduction Architectures, Selected Reprints On
The Theory and Practice of Transforming Call-by-need into Call-by-value
Proceedings of the Fourth 'Colloque International sur la Programmation' on International Symposium on Programming
The GRIN Project: A Highly Optimising Back End for Lazy Functional Languages
IFL '96 Selected Papers from the 8th International Workshop on Implementation of Functional Languages
A combinator-based compiler for a functional language
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
Super-combinators a new implementation method for applicative languages
LFP '82 Proceedings of the 1982 ACM symposium on LISP and functional programming
A fixed-program machine for combinator expression evaluation
LFP '82 Proceedings of the 1982 ACM symposium on LISP and functional programming
EPspectra: a formal toolkit for developing DSP software applications
Theory and Practice of Logic Programming
Hi-index | 0.00 |
This paper describes the principles underlying an efficient implementation of a lazy functional language, compiling to code for ordinary computers. It is based on combinator-like graph reduction: the user defined functions are used as rewrite rules in the graph. Each function is compiled into an instruction sequence for an abstract graph reduction machine, called the G-machine, the code reduces a function application graph to its value. The G-machine instructions are then translated into target code. Speed improvements by almost two orders of magnitude over previous lazy evaluators have been measured; we provide some performance figures.