Strictness analysis—a practical approach
Proc. of a conference on Functional programming languages and computer architecture
TIM: A simple, lazy abstract machine to execute supercombinators
Proc. of a conference on Functional programming languages and computer architecture
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
The Computer Journal - Special issue on Lazy functional programming
Improving the three instruction machine
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Report on the programming language Haskell: a non-strict, purely functional language version 1.2
ACM SIGPLAN Notices - Haskell special issue
Compilation of functional languages using flow graph analysis
Software—Practice & Experience
A Parallel Method for Tridiagonal Equations
ACM Transactions on Mathematical Software (TOMS)
Efficient compilation of lazy evaluation
SIGPLAN '84 Proceedings of the 1984 SIGPLAN symposium on Compiler construction
Functional Programming for Loosely-Coupled Multiprocessors
Functional Programming for Loosely-Coupled Multiprocessors
Backwards Strictness Analysis: Proved and Improved
Proceedings of the 1989 Glasgow Workshop on Functional Programming
The Implementation of Functional Programming Languages (Prentice-Hall International Series in Computer Science)
Hi-index | 0.00 |
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.