Heap Profiling of a Lazy Functional Compiler
A significant problem with lazy functional programs is that they often demand a great deal of space. Multi-megabyte workstations are now commonplace, but serious users of functional programming systems have to equip even these machines with additional memory. The essence of laziness is to delay evaluation rather than compute values that may not be needed; and once values are computed to retain them if they may be needed again. This policy might save time, but it can easily lead to space faults: the accumulation or retention of large structures in memory, in ways that the programmer is unaware of, or does not fully understand, let alone intend. Hence profiling tools, by which programmers can obtain information about memory use in terms of the source program, are potentially of great value.
KeywordsParse Tree Functional Program Assembly Language Runtime System Group Profile
Unable to display preview. Download preview PDF.
- S. Clayman, D. Parrot, and C. Clack. A Profiling Technique for Lazy, Higher-Order Functional Programs. Technical report, Department of Computing Science, University College London, November 1991.Google Scholar
- T-M. Kuo and Mishra. Strictness Analysis: A New Perspective Based on Type Inference. In Proceedings of the 1989 Conference on Functional Programming Languages and Computer Architecture, pages 260–272. ACM Press, September 1989.Google Scholar
- C. Runciman and D. Wakeling. Heap Profiling of Lazy Functional Programs. Technical Report 172, Department of Computer Science, University of York, April 1992.Google Scholar
- P. M. Sansom and S. L. Peyton Jones. Profiling Lazy Functional Programs. In J. Launchbury and P. M. Sansom, editors, Functional Programming, Glasgow 1992. Springer-Verlag, Workshps in Computing, 1992.Google Scholar
- W. Stoye. The Implementation of Functional Languages Using Custom Hardware. PhDthesis, University of Cambridge Computer Laboratory, December 1986. Technical Report No. 81.Google Scholar
- C. von Dorrien. Stingy Evaluation. Licentiate Dissertation, Chalmers University of Technology, S-412 96 Göteborg, 1989.Google Scholar