Dynamic Cheap Eagerness
Dynamic cheap eagerness extends cheap eagerness by allowing the decision of whether to build a thunk or speculatively evaluate its body to be deferred until run time. We have implemented this optimisation in a compiler for a simple functional language and measured its effect on a few benchmarks. It turns out that a large part of the overhead of graph reduction can be eliminated, but that run-times and instruction counts are not affected in the same degree.
Unable to display preview. Download preview PDF.
- CV94.Hall Cordelia V. Using Hindley-Milner type inference to optimise list representation. In Lisp and Functional Programming, June 1994.Google Scholar
- Fax95.Karl-Filip Faxén. Optimizing lazy functional programs using flow inference. In Allan Mycroft, editor, Proceedings of the Second International Symposium on Static Analysis, pages 136–153, Glasgow, UK, September 1995. Springer-Verlag.Google Scholar
- Fax97.Karl-Filip Faxén. Analysing, Transforming and Compiling Lazy Functional Programs. PhD thesis, Department of Teleinformatics, Royal Institute of Technology, June 1997.Google Scholar
- Fax99.Karl-Filip Faxén. Representation analysis for coercion placement. In Konstantinos Sagonas and Paul Tarau, editors, Proceedings of the International Workshop on Implementation of Declarative Languages, September 1999.Google Scholar
- Fax00.Karl-Filip Faxén. Cheap eagerness: Speculative evaluation in a lazy functional language. In Philip Wadler, editor, Proceedings of the 2000 International Conference on Functional Programming, September 2000.Google Scholar
- Fax01.Karl-Filip Faxén. The costs and benefits of cloning in a lazy functional language. In Stephen Gilmore, editor, Trends in Functional Programming, volume 2, pages 1–12. Intellect, 2001. Proc. of Scottish Functional Programming Workshop, 2000.Google Scholar
- HL93.Pieter Hartel and Koen Langendoen. Benchmarking implementations of lazy functional languages. In Functional Programming & Computer Architecture, pages 341–349, Copenhagen, June 93.Google Scholar
- JW95.Suresh Jagannathan and Stephen Weeks. A unified treatment of flow analysis in higher-order languages. In Principles of Programming Languages, 1995.Google Scholar
- Ses91.Peter Sestoft. Analysis and efficient implementation of functional programs. PhD thesis, DIKU, University of Copenhagen, Denmark, October 1991.Google Scholar
- Shi91.O. Shivers. The semantics of Scheme control-flow analysis. In Proceedings of the Symposium on Partial Evaluation and Semantics-Based Program Manipulation, volume 26, pages 190–198, New Haven, CN, June 1991.Google Scholar
- SRA94.Zhong Shao, John H. Reppy, and Andrew W. Appel. Unrolling lists. In Lisp and Functional Programming, June 1994.Google Scholar