|
ABSTRACT
Cheap eagerness is an optimization where cheap and safe expressions are evaluated before it is known that their values are needed. Many compilers for lazy functional languages implement this optimization, but they are limited by a lack of information about the global flow of control and about which variables are already evaluated. Without this information, even a variable reference is a potentially unsafe expression!In this paper we show that significant speedups are achievable by cheap eagerness. Our cheapness analysis uses the results of a program-wide data and control flow analysis to find out which variables may be unevaluated and which variables may be bound to functions which are dangerous to call.
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
|
S. Abramsky. Abstract interpretation, logical relations and Kan extensions. Journal of Logic and Computation, 1(1):5-39, 1990.
|
| |
2
|
|
| |
3
|
Karl-Filip Faxen. Analysing, Transforming and Compiling Lazy Functional Programs. PhD thesis, Department ofTeleinformatics, Royal Institute of Technology, June 1997.
|
| |
4
|
Karl-Filip Faxen. Representation analysis for coercion placement. In Konstantinos Sagonas and Paul Tarau, editors, Proceedings of the International Workshop on Implementation of Declarative Languages, September 1999.
|
| |
5
|
|
 |
6
|
|
 |
7
|
|
 |
8
|
|
 |
9
|
|
| |
10
|
|
| |
11
|
Simon Peyton Jones and John Hughes. Report on the programming language Haskell 98. Downloadable from www.haskell.org, February 1999.
|
| |
12
|
|
 |
13
|
|
| |
14
|
Andr~e Santos. Compilation by Transformation in Non-Strict Functional Languages. PhD thesis, Glasgow University, Department of Computing Science, 1995.
|
| |
15
|
Peter Sestoft. Analysis and efficient implementation of functional programs. PhD thesis, DIKU, University of Copenhagen, Denmark, October 1991.
|
 |
16
|
|
| |
17
|
|
| |
18
|
|
| |
19
|
|
|