Abstract
Space and time problems still occasionally dog the functional programmer, despite increasingly efficient implementations and the recent spate of useful profiling tools. There is a need for a model of program reduction that relates directly to the user’s code and has a simple graphical representation. Naïve graph reduction provides this. We address the problems of displaying a series of program graphs which may be long, and the elements of which may be large and complex. We offer a scheme for compacting an individual display by creating a quotient graph through defining equivalence classes, and a similar scheme for reducing the number of graphs to show. A metalanguage to allow the user to define compaction rules gives the model flexibility. A prototype system exists in a Haskell implementation.
This work was supported by a SERC grant to the first author and is described further in her D.Phil. thesis [3].
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
David V. Beard and John Q. Walker II. Navigational techniques to improve the display of large two-dimensional spaces. Behaviour and Information Technology, 9 (6): 451–466, 1990.
Chris Clack, Stuart Clayman, and David Parott. Lexical Profiling: Theory and Practice. Technical report, University College London, 1993 (to appear in the Journal of Functional Programming).
Sandra P. Foubister. Graphical application and visualization of lazy functional computation. D.Phil thesis, University of York, 1995 (forthcoming).
Samuel Kamin. A debugging environment for functional programming in Centaur. Technical Report 1265, INRIA-Sophia Antipolis, 1990.
H. Lieberman. Steps Toward Better Debugging Tools for Lisp. In ACM Symposium on LISP and Functional Programming, pages 247–255, 1984.
H. Nilsson and P. Fritzson. Algorithmic Debugging of Lazy Functional Languages. In M. Bruynooghe and M. Wirsing, editors, Programming Language Implementation and Logic Programming, pages 385–389, Leuven, Belgium, 1992. Springer Verlag.
Simon Peyton Jones and David Lester. Implementing functional languages: a tutorial Prentice Hall, 1992.
Colin Runciman and David Wakeling. Heap profiling of lazy functional programs. Journal of Functional Programming, 3 (2), 1993.
Patrick M. Sansom. Execution profiling for non-strict functional languages. Ph.D. thesis, University of Glasgow, 1994.
Robin A. Snyder. Lazy Debugging of Functional Programs. New Generation Computing, 8: 139–161, 1990.
J. Taylor. A System For Representing The Evaluation of Lazy Functions. Technical report, Department of Computer Science, Queen Mary and Westfield College, 1991.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1995 Springer-Verlag London
About this paper
Cite this paper
Foubister, S.P., Runciman, C. (1995). Techniques for Simplifying the Visualization of Graph Reduction. In: Hammond, K., Turner, D.N., Sansom, P.M. (eds) Functional Programming, Glasgow 1994. Workshops in Computing. Springer, London. https://doi.org/10.1007/978-1-4471-3573-9_5
Download citation
DOI: https://doi.org/10.1007/978-1-4471-3573-9_5
Publisher Name: Springer, London
Print ISBN: 978-3-540-19914-4
Online ISBN: 978-1-4471-3573-9
eBook Packages: Springer Book Archive