Lambda lifting: transforming programs to recursive equations
Proc. of a conference on Functional programming languages and computer architecture
A safe approach to parallel combinator reduction
Proc. of the European symposium on programming on ESOP 86
TIM: A simple, lazy abstract machine to execute supercombinators
Proc. of a conference on Functional programming languages and computer architecture
Detecting sharing of partial applications in functional languages
Proc. of a 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
The Implementation of Functional Programming Languages (Prentice-Hall International Series in Computer Science)
Conception, evolution, and application of functional programming languages
ACM Computing Surveys (CSUR)
Using projection analysis of evaluation-order and its application
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Compilation as partitioning: a new approach to compiling non-strict functional languages
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Improving the three instruction machine
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Stacklessness: compiling recursion for a distributed architecture
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
The spineless tagless G-machine
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
An abstract machine for parallel graph reduction
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Cache behavior of combinator graph reduction
ACM Transactions on Programming Languages and Systems (TOPLAS)
Assessing the evaluation transformer model of reduction on the spineless G-machine
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Strictness optimization for graph reduction machines (why id might not be strict)
ACM Transactions on Programming Languages and Systems (TOPLAS)
A systematic study of functional language implementations
ACM Transactions on Programming Languages and Systems (TOPLAS)
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Efficient compilation of lazy evaluation
ACM SIGPLAN Notices - Best of PLDI 1979-1999
Exploring the barrier to entry: incremental generational garbage collection for Haskell
Proceedings of the 4th international symposium on Memory management
The Reduceron: Widening the von Neumann Bottleneck for Graph Reduction Using an FPGA
Implementation and Application of Functional Languages
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
The very lazy λ-calculus and the STEC machine
IFL'09 Proceedings of the 21st international conference on Implementation and application of functional languages
Hi-index | 0.00 |
Recent developments in functional language implementations have resulted in the G-machine, a programmed graph-reduction machine. Taking this as a basis, we introduce an optimised method of performing graph reduction, which does not need to build the spine of the expression being reduced. This Spineless G-machine only updates shared expressions, and then only when they have been reduced to weak head normal form. It is thus more efficient than the standard method of performing graph reduction.We begin by outlining the philosophy and key features of the Spineless G-machine, and comparing it with the standard G-machine. Simulation results for the two machines are then presented and discussed. The Spineless G-machine is also compared with Tim, giving a series of transformations by which they can be interconverted. These open up a wide design space for abstract graph reduction machines, which was previously unknown. A full specification of the spineless machine is given in the appendix, together with compilation rules for a simple functional language.