Abstract
Redex trails are histories of functional computations by graph reduction; their main application is fault-tracing. A prototype implementation of a tracer based on redex trails [8] demonstrated the promise of the technique, but was limited in two respects: (1) trails did not record every reduction, only those constructing a new value; (2) even so computing trails was very expensive, particularly in terms of the memory space they occupied. In this paper, we address both problems: complete redex trails provide a full computational record; partial versions of these trails exclude all but selected details, greatly reducing memory costs. We include results of experiments tracing several applications, including a compiler.
Preview
Unable to display preview. Download preview PDF.
References
S. A. Jarvis and R. G. Morgan. The results of: profiling large-scale lazy functional programs. In W. Kluge, editor, Implementation of Functional Languages, 8th International Workshop (IFL'96), Selected Papers, pages 200–221. Springer LNCS 1268, September 1996.
Henrik Nilsson and Jan Sparud. The evaluation dependence tree: an execution record for lazy functional debugging. Research Report LiTH-IDA-R-96-23, Department of Computer and Information Science, Linköping University, S-581 83, Linköping, Sweden, August 1996.
Henrik Nilsson and Jan Sparud. The evaluation dependence tree as a basis for lazy functional debugging. Journal of Automated Software Engineering, 4(2): 152–205, April 1997.
H. Phillips. The week-end problems book. Nonesuch Press, 1932.
N. Röjemo. Highlights from nhc — a space-efficient Haskell compiler. In Proc. 7th Intl. Conf. on Functional Programming Languages and Computer Architecture (FPCA '95), pages 282–292. ACM Press, June 1995.
N. Röjemo and C. Runciman. Lag, drag, void and use — heap profiling and space-efficient compilation revisited. In Proc. Intl. Conf. on Functional Programming, pages 34–41. ACM Press, June 1996.
P. M. Sansom and S. L. Peyton Jones. Formally based profiling for higher-order functional languages. ACM Transactions on Programming Languages and Systems, 19(2): 334–85, March 1997.
J. Sparud and C. Runciman. Tracing lazy functional computations using redex trails. In Proc. 9th Intl. Symposium on Programming Languages, Implementations, Logics and Programs (PLILP'97), September 1997.
A. Tolmach and A. W. Appel. A debugger for Standard ML. Journal of Functional Programming, 5(2): 155–200, April 1995.
A. P. Tolmach. Debugging Standard ML. PhD thesis, Princeton, USA, October 1992.
R. D. Watson. Tracing Lazy Evaluation by Program Transformation. PhD thesis, Southern Cross, Australia, October 1996.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1998 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Sparud, J., Runciman, C. (1998). Complete and partial redex trails of functional computations. In: Clack, C., Hammond, K., Davie, T. (eds) Implementation of Functional Languages. IFL 1997. Lecture Notes in Computer Science, vol 1467. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0055430
Download citation
DOI: https://doi.org/10.1007/BFb0055430
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-64849-9
Online ISBN: 978-3-540-68528-9
eBook Packages: Springer Book Archive