1992
DOI: 10.1017/s0956796800000319
|View full text |Cite
|
Sign up to set email alerts
|

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

Abstract: 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 th… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
71
0

Year Published

1994
1994
2012
2012

Publication Types

Select...
5
3
1

Relationship

0
9

Authors

Journals

citations
Cited by 226 publications
(75 citation statements)
references
References 39 publications
0
71
0
Order By: Relevance
“…In principle, it shares its parallel runtime system (PRTS) with Glasgow parallel Haskell [58] but due to the disjoint address spaces of its processes does not need to implement a virtual shared memory and global garbage collection in contrast to GpH. In the following, we abstract from low-level implementation details like graph reduction and thread management which are explained elsewhere [47,58,14,34] and describe Eden's implementation on top of the module This module provides primitive monadic operations which are used to implement the Eden constructs on a higher-level of abstraction [10]. …”
Section: Behind the Scenes: Eden's Implementationmentioning
confidence: 99%
“…In principle, it shares its parallel runtime system (PRTS) with Glasgow parallel Haskell [58] but due to the disjoint address spaces of its processes does not need to implement a virtual shared memory and global garbage collection in contrast to GpH. In the following, we abstract from low-level implementation details like graph reduction and thread management which are explained elsewhere [47,58,14,34] and describe Eden's implementation on top of the module This module provides primitive monadic operations which are used to implement the Eden constructs on a higher-level of abstraction [10]. …”
Section: Behind the Scenes: Eden's Implementationmentioning
confidence: 99%
“…The primitive operations implement basic actions which have to be performed directly in the runtime system of the underlying sequential compiler GHC 3 . In the Eden module, every primitive operation is wrapped in In the following, we abstract from low-level implementation details like graph reduction and thread management which are well-understood and explained elsewhere [12,19,2]. Instead we focus on coordination aspects, in particular process abstractions and process instantiations and their implementation in the Eden module.…”
Section: A Layered Implementation Of Coordinationmentioning
confidence: 99%
“…A large amount of time has been spent proling the system with both the Glasgow cost centre proler [10], part of GHC, and also the York heap proler [12] [13], supplied with the Chalmers haskell compiler. Improvements to the overall system achieved through the use of the prolers have been in the order of 35%.…”
Section: Proling Domain Specic Sublanguagesmentioning
confidence: 99%