|
ABSTRACT
We study the strictness problem for the untyped lambda-calculus and for an ML-like typed calculus. We establish that strictness is a necessary and sufficient condition for the “eager” evaluation of function arguments. For the untyped calculus, we show that the strictness problem is elementary and describe a complete algorithm for strictness analysis of convergent terms. We show that typed terms possess a much richer set of strictness properties. A type-theoretic characterization of strictness is developed and it is shown that the strictness properties of a term can be represented as a collection of types related to the standard term type. A set of type inference rules that support reasoning about strictness related types is given. The inference rules are shown to be invariant under type change by substitution. This provides a sound basis for reasoning about strictness properties of terms by considering only their principal type. For our final result, we describe a practical system that carries out type checking and strictness analysis simultaneously in a unified framework. Our main result is thus the discovery that the problem of strictness analysis is a particular case of type inference.
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.
| |
Abramsky85
|
|
| |
Barendregt81
|
Barendregt, H. P., The Larnbda Calculus: Its Syntax and Semantics, North- Holland, 1981.
|
| |
Burns85
|
Burn, G. L., Hankin, C. L. and Abramsky, S., The Theory and Practice of Strictness Analysis for Higher-Order Functions, Research Report 85/6, Department of Computing, Imperial College.
|
| |
ClackJones85
|
|
 |
MiDa82
|
|
| |
Goguen86
|
Goguen, J., Kirchner, C., Leinwald, S., Meseguer, J. and Winkler, T., Progress Report on the Rewrite Rule Machine, SIGARCH Newsletter, Maxch 1986.
|
| |
Haankin85
|
|
 |
Hudak86a
|
|
| |
Hudak-Kranz
|
Hudak, P., Kranz, D., A combinatorbased compiler for a functional language, POPL XI, p. 121-131.
|
| |
Hughes85
|
|
 |
Johnsson
|
|
| |
Kowalski
|
|
| |
Kuo86
|
Kuo, T-M, A Practical Method for Strictness Analysis, Research Proficiency Paper, December 1986, SUNY Stony Brook.
|
 |
Lindstrom86
|
|
| |
Milner78
|
Milner, R., A theory of type polymorphism in programming, JCSS 17,3, p348-375, 1978.
|
 |
MS82
|
David MacQueen , Gordon Plotkin , Ravi Sethi, An ideal model for recursive polymorphic types, Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, p.165-174, January 15-18, 1984, Salt Lake City, Utah, United States
[doi> 10.1145/800017.800528]
|
| |
Maurer85
|
|
 |
Mitchell84
|
|
| |
Mycroft80
|
|
| |
Wadsworth71
|
Wadsworth, C. P., Semantics and Pragmatics of the lambda-calculus, Ph. D. Thesis, Oxford University, 1971.
|
| |
Wadsworth76
|
Wadsworth, C. P., The relation between Computational and Denotational Properties for Scott's Doo-models of the Lambda-Calculus, SIAM J. Comput., 5, 3, September 1976.
|
| |
Wray85
|
Wray, S. C., A New Strictness Detection Algorithm, Cambridge University, Manuscript, 21p, January 1985.
|
|