|
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
|
Zena M. Ariola , John Maraist , Martin Odersky , Matthias Felleisen , Philip Wadler, A call-by-need lambda calculus, Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.233-246, January 23-25, 1995, San Francisco, California, United States
[doi> 10.1145/199448.199507]
|
| |
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
|
David N. Turner , Philip Wadler , Christian Mossin, Once upon a type, Proceedings of the seventh international conference on Functional programming languages and computer architecture, p.1-11, June 26-28, 1995, La Jolla, California, United States
[doi> 10.1145/224164.224168]
|
Peer to Peer - Readers of this Article have also read:
-
Data structures for quadtree approximation and compression
Communications of the ACM
28, 9
Hanan Samet
-
A hierarchical single-key-lock access control using the Chinese remainder theorem
Proceedings of the 1992 ACM/SIGAPP Symposium on Applied computing
Kim S. Lee
, Huizhu Lu
, D. D. Fisher
-
The GemStone object database management system
Communications of the ACM
34, 10
Paul Butterworth
, Allen Otis
, Jacob Stein
-
Putting innovation to work: adoption strategies for multimedia communication systems
Communications of the ACM
34, 12
Ellen Francik
, Susan Ehrlich Rudman
, Donna Cooper
, Stephen Levine
-
An intelligent component database for behavioral synthesis
Proceedings of the 27th ACM/IEEE conference on Design automation
Gwo-Dong Chen
, Daniel D. Gajski
|