Hostname: page-component-6766d58669-mzsfj Total loading time: 0 Render date: 2026-05-14T13:29:18.343Z Has data issue: false hasContentIssue false

Implementing lazy functional languages on stock hardware: the Spineless Tagless G-machine

Published online by Cambridge University Press:  07 November 2008

Simon L. Peyton Jones
Affiliation:
Department of Computing Science, University of GlasgowG12 8QQ, UKsimonpj@dcs.glasgow.ac.uk
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the 'Save PDF' action button.

The Spineless Tagless G-machine is an abstract machine designed to support non-strict higher-order functional languages. This presentation of the machine falls into three parts. Firstly, we give a general discussion of the design issues involved in implementing non-strict functional languages. Next, we present the STG language, an austere but recognizably-functional language, which as well as a denotational meaning has a well-defined operational semantics. The STG language is the ‘abstract machine code’ for the Spineless Tagless G-machine. Lastly, we discuss the mapping of the STG language onto stock hardware. The success of an abstract machine model depends largely on how efficient this mapping can be made, though this topic is often relegated to a short section. Instead, we give a detailed discussion of the design issues and the choices we have made. Our principal target is the C language, treating the C compiler as a portable assembler.

Information

Type
Articles
Copyright
Copyright © Cambridge University Press 1992
Submit a response

Discussions

No Discussions have been published for this article.