ACM Home Page
Please provide us with feedback. Feedback
Strictness optimization for graph reduction machines (why id might not be strict)
Full text PdfPdf (1.34 MB)
Source ACM Transactions on Programming Languages and Systems (TOPLAS) archive
Volume 16 ,  Issue 5  (September 1994) table of contents
Pages: 1449 - 1466  
Year of Publication: 1994
ISSN:0164-0925
Author
Marcel Beemster  Univ. of Amsterdam, Amsterdam, The Netherlands
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 3,   Downloads (12 Months): 42,   Citation Count: 0
Additional Information:

abstract   references   index terms   review   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/186025.186040
What is a DOI?

ABSTRACT

Strictness optimizations in the implementation of lazy functional languages are not always valid. In nonoptimized graph reduction, evaluation always takes place at the request of case analysis or a primitive operation. Hence, the result of a reduction is always a data value and never a function. This implies that in an implementation no argument satisfaction check is required. But in the presence of strict arguments, “premature” reduction may take place outside the scope of a case or primitive operation. This causes problems in graph reducers that use an aggressive take. Two solutions are presented, one based on a run-time argument satisfaction check, the other on a weakened strictness analyzer. Experimental results are used to compare the two solutions and show that the cost of the aggressive take can be arbitrarily high for specific programs. The experimental results enable a trade-off to be made by the reduction machine designer.


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
 
3
BEEMSTER, M. 1993. Optimizing transformations for a lazy functional language. In the 7th Computer Systems, W.-J. Withagen, Ed. Eindhoven Univ. of Technology, The Netherlands, (Nov.), 17-40.
 
4
BEEMSTER, M. 1992. The lazy functional intermediate language STOFFEL. Tech. Rep. CS-92-16, Dept of Computer Systems, Univ. of Amsterdam, The Netherlands.
5
 
6
 
7
 
8
 
9
THE GRASP TEAM. 1992. The glorious HASKELL compilation system user's guide. Tech. Rep. Dept. of Computer Science, Univ. of Glasgow, Scotland.
 
10
 
11
HowE, D.B. 1992. Experiments with strict STG code. In the 4th international Workshop on the Parallel Implementation of Functional Languages, H. Kuchen, and R. Loogen, Eds. Aachener Informatik-Berichte 92-19, Fachgruppe Informatik, RWTH Aachen, Germany, 1-8.
12
13
 
14
 
15
MULLER, H. L. 1992. Simulating computer architectures. Ph.D. thesis, Dept of Computer Systems, Univ. of Amsterdam, (Feb.), The Netherlands.
 
16
N0CKER, E. G. J. M.H. 1990. Strictness analysis using abstract reduction. Implementation of functional languages on parallel architectures. Tech. Rep. 90-16, Dept. of Computer Science, Univ. of Nijmegen, The Netherlands, (June), 171-201.
 
17
PEYTON JONES, S.L. 1992. Implementing lazy functional languages on stock hardware: The spineless tag}ess G-machine. J. Funct. Program. 2, 2 (Apr.) 127-202.
 
18
 
19
VREE, W.G. 1989. Design considerations for a parallel reduction machine. Ph.D. thesis, Dept of Computer Systems, Univ of Amsterdam, The Netherlands, Dec.
 
20
VREE, W. G. AND HARTEL P. H. 1992. Communication lifting: Fixed point computation for parallelism. Tech. Rep. CS-92-07, Dept of Computer Systems, Univ. of Amsterdam, The Netherlands, Dec.
21


REVIEW

"Dirk Dussart : Reviewer"

Beemster starts where most other papers on strictness optimization end. This paper investigates how the information gathered by a strictness analyzer can be used at the implementation level. Strictness analysis has become a popular optimizatio  more...