The spineless G-machine

  • Authors:
  • G. L. Burn;S. L. Peyton Jones;J. D. Robson

  • Affiliations:
  • GEC Hirst Research Centre, East Lane, Wembley, Middx HA9 7PP, United Kingdom;Department of Computer Science, University College London, Gower Street, London WC1E 6BT, United Kingdom;GEC Hirst Research Centre, East Lane, Wembley, Middx HA9 7PP, United Kingdom

  • Venue:
  • LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
  • Year:
  • 1988

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.