ACM Home Page
Please provide us with feedback. Feedback
The spineless tagless G-machine, naturally
Full text PdfPdf (1.31 MB)
Source International Conference on Functional Programming archive
Proceedings of the third ACM SIGPLAN international conference on Functional programming table of contents
Baltimore, Maryland, United States
Pages: 163 - 173  
Year of Publication: 1998
ISBN:1-58113-024-4
Also published in ...
Author
Jon Mountjoy  Department of Computer Science, University of Amsterdam, Kruislaan 403, 1098 SJ Amsterdam
Sponsor
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 0,   Downloads (12 Months): 19,   Citation Count: 3
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues   peer to peer  

Tools and Actions: Review this Article  
Save this Article to a Binder    Display Formats: BibTex  EndNote ACM Ref   
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/289423.289439
What is a DOI?

ABSTRACT

The application of natural semantic specifications of lazy evaluation to areas such as usage analysis, formal profiling and abstract machine construction has shown it to be a useful formalism. This paper introduces several variants and extensions of this specification.The first variant is derived from observations of the Spineless Tagless G-machine (STG), used in the Glasgow Haskell compiler. We present a modified natural semantic specification which can be formally manipulated to derive an STG-like machine.The second variant is the development of a natural semantic specification which allows functions to be applied to more than one argument at once. The STG and TIM abstract machines both allow this kind of behaviour, and we illustrate a use of this semantics by again modifying this semantics following observations of the STG machine. The resulting semantics can be used to formally derive the STG machine. This effectively proves the STG machine correct with respect to Launchbury's semantics.En route, we also show that update markers in the STG machine are necessary for termination, and show how well-known abstract machine instructions, such as the squeeze operation, appear quite naturally as optimisations of the derived abstract machine.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
 
2
Diehl, S. (1996), Semantics-directed generation of compilers and abstract machines, PhD thesis, Universitiit des Saarlandes.
 
3
Douence, R. & Fradet, P. (1996), A taxonomy of functional languages implementations, part Ih Call-by-name, callby-need and graph reduction, Technical Report 3050, Institut National de recherche en Informatique et Automatique (INRIA).
 
4
 
5
6
7
 
8
 
9
Lins, R. D., Thompson, S. J. & Peyton Jones, S. (1994), '(h~ t}?.e ~,quivalence between CMC and TIM', Journal of Functional Programming 4(1), 47-63.
 
10
Meijer, E. (1988), A taxonomy of function evaluating machines, in T. Johnsson, S. Peyton Jones & K. Karlsson, eds, 'Proceedings of the workshop on Implementation of Function al Languages', Chalmers University of Technology, Tect~nical Report 53.
 
11
Peyton Jones, S. L. (1992), 'Implementing lazy functional languages on stock hardware: The STG machine', .Journal (.,f lVv, nctional Programming 2(2), 127-202.
 
12
 
13
 
14
Sansom, P. M. (1994), Execution Profiling for Non-strict Functionai Languages, PhD thesis, University of Glasgow
15
 
16
 
17
 
18
19



Peer to Peer - Readers of this Article have also read: