Abstract
The complexity of lazy evaluation forbids classic debugging techniques like a simple step-by-step representation of the buggy program run. Therefore, most sophisticated tools for finding bugs in lazy functional programs try to display the run as if the program’s underlying semantics was strict. In order to provide such a strict representation, current approaches gather a lot of information about the executed program.
We utilized a new technique to drastically reduce the amount of gathered data and show how to use the reduced information to implement a debugging tool which supports declarative debugging as well as a strict step-by-step tracer.
This work has been partially supported by DFG grant Ha 2457/1-2.
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
Braßel, B., Fischer, S., Hanus, M., Huch, F., Vidal, G.: Lazy call-by-value evaluation. In: Proceedings of the 12th ACM SIGPLAN International Conference on Functional Programming (ICFP 2007), pp. 265–276 (2007)
Chitil, O., Runciman, C., Wallace, M.: Freja, hat and hood – a comparative evaluation of three systems for tracing and debugging lazy functional programs. In: Mohnen, M., Koopman, P. (eds.) IFL 2000. LNCS, vol. 2011, pp. 176–193. Springer, Heidelberg (2001)
Chitil, O., Davie, T.: Display of functional values for debugging. In: Horváth, Z., Zsók, V., Butterfield, A. (eds.) IFL 2006. LNCS, vol. 4449, pp. 326–337. Springer, Heidelberg (2007)
Gill, A.: Debugging Haskell by observing intermediate datastructures. Electronic Notes in Theoretical Computer Science 41(1) (2001)
Nilsson, H., Sparud, J.: The Evaluation Dependence Tree as a Basis for Lazy Functional Debugging. Automated Software Engineering 4(2), 121–150 (1997)
Pope, B.: Declarative Debugging with Buddha. In: Vene, V., Uustalu, T. (eds.) AFP 2004. LNCS, vol. 3622, pp. 273–308. Springer, Heidelberg (2005)
Silva, J.: A comparative study of algorithmic debugging strategies. In: Puebla, G. (ed.) LOPSTR 2006. LNCS, vol. 4407, pp. 143–159. Springer, Heidelberg (2007)
Sparud, J., Runciman, C.: Tracing Lazy Functional Computations Using Redex Trails. In: Hartel, P.H., Kuchen, H. (eds.) PLILP 1997. LNCS, vol. 1292, pp. 291–308. Springer, Heidelberg (1997)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Braßel, B., Siegel, H. (2008). Debugging Lazy Functional Programs by Asking the Oracle . In: Chitil, O., Horváth, Z., Zsók, V. (eds) Implementation and Application of Functional Languages. IFL 2007. Lecture Notes in Computer Science, vol 5083. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-85373-2_11
Download citation
DOI: https://doi.org/10.1007/978-3-540-85373-2_11
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-85372-5
Online ISBN: 978-3-540-85373-2
eBook Packages: Computer ScienceComputer Science (R0)