ACM Home Page
Please provide us with feedback. Feedback
Small domains spell fast strictness analysis
Full text PdfPdf (1.68 MB)
Source Annual Symposium on Principles of Programming Languages archive
Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages table of contents
San Francisco, California, United States
Pages: 169 - 183  
Year of Publication: 1989
ISBN:0-89791-343-4
Authors
R. C. Sekar  Dept. of Computer Science, SUNY at Stony Brook, NY
Shaunak Pawagi  Dept. of Computer Science, SUNY at Stony Brook, NY
I. V. Ramarkrishnan  Dept. of Computer Science, SUNY at Stony Brook, NY
Sponsors
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 3,   Downloads (12 Months): 10,   Citation Count: 6
Additional Information:

abstract   references   cited by   index terms   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/96709.96727
What is a DOI?

ABSTRACT

Use of strictness analysis in parallel evaluation and optimization of lazy functional languages is well known. The first formal treatment of strictness analysis appeared in Mycroft's seminal work which however dealt only with flat domains. Unlike flat domains, strictness analysis on non-flat domains involves determining how a function transforms a demand (degree of strictness) on its output into a demand on its arguments. Solutions to this problem in its full generality require large domains and appear both complex and expensive to implement. However, only two kinds of demands arise naturally in lazy normalization of terms, viz., e-demand (normal form needed) and d-demand (root stable or head normal form needed). Based on this observation, we identify three useful forms of strictness for non-flat domains - ee, dd and de. Each of these three forms of strictness play an important role in evaluation of functional programs. Specifically, ee strictness is used for transforming call-by-need to call-by-value and dd strictness is useful in repairing violations of strong sequentiality of equational programs as well as in a critical optimization step used in rewriting implementations of such languages. We present intuitively simple methods to compute them. Our methods are computationally efficient as they are based on small domains (1 point for ee and dd and 2 points for de). They are powerful enough to extract all useful strictness information in practice and are general enough to handle functions defined by rewrite rules. We are able to reason about all user defined data types within a single framework and also handle polymorphism.


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.

Aug84
 
Burn85
Burs80
 
Cla85
Cou77
Fut85
Hall87
HD82
Hud86
 
Huet79
HUET, G. AND LEVY, J.J., Computations in Nonambiguous Linear Term Rewriting Systems, Tech. Rap. No. 359(1979), INRIA, Le Chesney, France.
 
Hug85
 
Kel80
KELLER, It.M, Semantics and Applications of Function Graphs~ Technical Report UUCS-80-11~, Univ. of Utah, 1980.
Kuo89
Lin86
 
Mar87
 
Myc80
 
OD77
 
OD85
 
OD87
 
Sek89
 
Str87
ROBBltT STRANDff, Optimizing Equational Programs, Rewriting Techniques and Applications, Springer-Verla9 LNCS ~56, 1987, pp. iS-e4.
 
That84
SATISH THATTE, Demand driven Evaluation with Equations, Technical Report CRL. TR-34-84, University oJ Michigan Computing Research Laboratory, Ann Arbor.
 
Tur85
 
Wad87


Collaborative Colleagues:
R. C. Sekar: colleagues
Shaunak Pawagi: colleagues
I. V. Ramarkrishnan: colleagues