Projections for strictness analysis
Proc. of a conference on Functional programming languages and computer architecture
Deforestation: transforming programs to eliminate trees
Proceedings of the Second European Symposium on Programming
The semantics of Scheme control-flow analysis
PEPM '91 Proceedings of the 1991 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Unboxed values as first class citizens in a non-strict functional language
Proceedings of the 5th ACM conference on Functional programming languages and computer architecture
Benchmarking implementations of lazy functional languages
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Set-based analysis of ML programs
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
A unified treatment of flow analysis in higher-order languages
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Total correctness by local improvement in the transformation of functional programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Efficient compilation of lazy evaluation
SIGPLAN '84 Proceedings of the 1984 SIGPLAN symposium on Compiler construction
Optimizing Lazy Functional Programs Using Flow Inference
SAS '95 Proceedings of the Second International Symposium on Static Analysis
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
Strictness and Totality Analysis with Conjunction
TAPSOFT '95 Proceedings of the 6th International Joint Conference CAAP/FASE on Theory and Practice of Software Development
The costs and benefits of cloning in a lazy functional language
Selected papers from the 2nd Scottish Functional Programming Workshop (SFP00)
Eager Haskell: resource-bounded execution yields efficient iteration
Proceedings of the 2002 ACM SIGPLAN workshop on Haskell
Representation Analysis for Coercion Placement
SAS '02 Proceedings of the 9th International Symposium on Static Analysis
IFL '02 Selected Papers from the 13th International Workshop on Implementation of Functional Languages
Optimistic evaluation: an adaptive evaluation strategy for non-strict programs
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Smarter garbage collection with simplifiers
Proceedings of the 2006 workshop on Memory system performance and correctness
Structure and Properties of Traces for Functional Programs
Electronic Notes in Theoretical Computer Science (ENTCS)
Complete Laziness: a Natural Semantics
Electronic Notes in Theoretical Computer Science (ENTCS)
ESOP'13 Proceedings of the 22nd European conference on Programming Languages and Systems
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Hi-index | 0.00 |
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.