|
ABSTRACT
This paper describes the principles underlying an efficient implementation of a lazy functional language, compiling to code for ordinary computers. It is based on combinator-like graph reduction: the user defined functions are used as rewrite rules in the graph. Each function is compiled into an instruction sequence for an abstract graph reduction machine, called the G-machine, the code reduces a function application graph to its value. The G-machine instructions are then translated into target code. Speed improvements by almost two orders of magnitude over previous lazy evaluators have been measured; we provide some performance figures.
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.
| |
Augu82
|
L. Augustsson, "FC manual", Memo 13, Programming Methodology Group, Chalmers University of Technology, Goteborg (1982).
|
 |
Back78
|
|
| |
Card84
|
L. Cardelli, "ML under UNIX", Polymorphism: The NL/LCF/Hope Newsletter, Vol. I no. 3 (January 1984).
|
 |
Feni69
|
|
| |
Frie76
|
D. P. Friedman and D. S. Wise, "Cons should not evaluate its arguments", pp. 257-284 in Automata, la---ages a, Programming, Edinburgh Univ. Press
|
| |
Gord79
|
M. Gordon, R. Milner, and C. Wadsworth, "Edinburgh LCF", Lecture Notes in Computer Science, Vol. 78, Springer Verlag (1979).
|
 |
Huda84
|
|
 |
Hugh82
|
|
| |
John81
|
T. Johnsson, "Code Generation for Lazy Evaluation", Memo 22, Programming Methodology Group, Chalmers University of Technology, Goteborg (1981).
|
 |
Jone82
|
|
| |
Land64
|
P. J. Landin, "The Mechanical Evaluation of Expressions", Computer Journal, No. 6 pp. 308-320 (January 1964).
|
 |
Land66
|
|
| |
Miln78
|
R. Milner, "A Theory of Type Polymorphism in Programming", Journal of Computer and System Sciences, Vol. 17 no. 3 pp. 348-375 (1978).
|
| |
Miln84
|
R. Milner, "Standard ML Proposal", Polymorphism: The /LCF/Hope Newsletter, Vol. I no. 3 (January 1984).
|
| |
Mycr8o
|
|
| |
Turn75
|
D.A. Turner, "An implementation of SASL", TR/75/4, St. Andrews (1975).
|
| |
Turn79
|
D. A. Turner, "New Implementation Techniques for Applicative Languages", Software Practice and Experience, Vol. 9 PP. 31-49 (1979).
|
CITED BY 41
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Lennart Augustsson , Thomas Johnsson, Parallel graph reduction with the (v , G)-machine, Proceedings of the fourth international conference on Functional programming languages and computer architecture, p.202-213, September 11-13, 1989, Imperial College, London, United Kingdom
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Paul Hudak , John Hughes , Simon Peyton Jones , Philip Wadler, A history of Haskell: being lazy with class, Proceedings of the third ACM SIGPLAN conference on History of programming languages, p.12-1-12-55, June 09-10, 2007, San Diego, California
|
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
|