ACM Home Page
Please provide us with feedback. Feedback
Higher-order strictness analysis in untyped lambda calculus
Full text PdfPdf (1.84 MB)
Source Annual Symposium on Principles of Programming Languages archive
Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages table of contents
St. Petersburg Beach, Florida
Pages: 97 - 109  
Year of Publication: 1986
Authors
Sponsor
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 10,   Downloads (12 Months): 40,   Citation Count: 31
Additional Information:

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

ABSTRACT

A function is said to be <i>strict</i> in one of its formal parameters if, in all calls to the function, either the corresponding actual parameter is evaluated, or the call does not terminate. Detecting which arguments a function will surely evaluate is a problem that arises often in program transformation and compiler optimization. We present a strategy that allows one to infer strictness properties of functions expressed in the lambda calculus. Our analysis improves on previous work in that (1) a set-theoretic characterization of strictness is used that permits treatment of <i>free variables,</i> which in turn permits a broader range of interpretations, and (2) the analysis provides an effective treatment of higher-order functions. We also prove a result due to Meyer [15]: the problem of first-order strictness analysis is complete in deterministic exponential time. However, because the size of most functions is small, the complexity seems to be tractable in practice.This research was supported in part by NSF Grant MCS-8302018, and a Faculty Development Award from IBM.


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
Burn, G. L., Hankin, C. L., and Abramsky, S. The theory and practice of strictness analysis for higher order functions. DoC 85/6, Imperial College of Science and Technology, Department of Computing, April, 1985.
3
 
4
5
6
 
7
 
8
Hudak, P. ALFL Reference Manual and Programmers Guide. Research Report YALEU/DCS/RR-322, Second Edition, Yale University, Oct., 1984.
9
 
10
Hudak, P. and Goldberg, B. Distributed execution of functional programs using serial combinators. Proceedings of 1985 Int'l Conf. on Parallel Proc. (and IEEE Trans. on Computers October 1985), Aug., 1985, pp. 831--839.
 
11
 
12
Hudak, P. and Young, J. A set-theoretic characterization of function strictness in the Lambda Calculus. Research Report YALEU/DCS/RR-391, Yale University, June, 1985.
 
13
Johnsson, T. Detecting when call-by-value can be used instead of call-by-need. Laboratory for Programming Methodology Memo 14, Chalmers University of Technology, Dept. of Computer Science, Oct., 1981.
 
14
Keller, R. M. FEL programmer's guide. AMPS TR 7, University of Utah, March, 1982.
 
15
Meyer, A. R. Complexity of program flow-analysis for strictness.
 
16
 
17
Mycroft, A. <i>Abstract Interpretation and Optimizing Transformations for Applicative Programs.</i> Ph.D. Th., Univ. of Edinburgh, 1981.
 
18
Turner, D. A. SASL language manual University of St. Andrews, 1976.

CITED BY  31
Collaborative Colleagues:
Paul Hudak: colleagues
Jonathan Young: colleagues