Strictness analysis—a practical approach
Proc. of a conference on Functional programming languages and computer architecture
Static evaluation of functional programs
SIGPLAN '86 Proceedings of the 1986 SIGPLAN symposium on Compiler construction
A safe approach to parallel combinator reduction
Proc. of the European symposium on programming on ESOP 86
Strictness analysis and polymorphic invariance
on Programs as data objects
Strictness detection in non-flat domains
on Programs as data objects
Strictness computation using special &lgr;-expressions
on Programs as data objects
Efficient compilation of lazy evaluation
SIGPLAN '84 Proceedings of the 1984 SIGPLAN symposium on Compiler construction
Higher-order strictness analysis in untyped lambda calculus
POPL '86 Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Logic for Problem Solving
Principal type-schemes for functional programs
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The Theory and Practice of Transforming Call-by-need into Call-by-value
Proceedings of the Fourth 'Colloque International sur la Programmation' on International Symposium on Programming
An ideal model for recursive polymorphic types
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Strictness analysis: a new perspective based on type inference
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Type-based analysis and applications
PASTE '01 Proceedings of the 2001 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Mathematical Structures in Computer Science
Hi-index | 0.00 |
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.