Abstract
A lightweight approach to debugging functional logic programs by observations is presented, implemented for the language Curry. The Curry Object Observation System (COOSy) comprises a portable library plus a viewing tool. A programmer can observe data structures and functions by annotating expressions in his program. The possibly partial values of observed expressions that are computed during program execution are recorded in a trace file, including information on non-deterministic choices and logical variables. A separate viewing tool displays the trace content. COOSy covers all aspects of modern functional logic multiparadigm languages such as lazy evaluation, higher order functions, non-deterministic search, logical variables, concurrency and constraints. Both use and implementation of COOSy are described.
This work has been partially supported by the DFG under 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
Booth, S.P., Jones, S.B.: Walk backwards to happiness - debugging by time travel. In: Automated and Algorithmic Debugging, pp. 171–183 (1997)
Caballero, R., López-Fraguas, F.J., Rodríguez-Artalejo, M.: Theoretical foundations for the declarative debugging of lazy functional logic programs. In: Kuchen, H., Ueda, K. (eds.) FLOPS 2001. LNCS, vol. 2024, pp. 170–184. Springer, Heidelberg (2001)
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)
Drabent, W., Nadjm-Tehrani, S., Maluszynski, J.: The use of assertions in algorithmic debugging. In: Proc. FGCS 1988, pp. 573–581 (1988)
Gill, A.: Debugging Haskell by observing intermediate data structures. In: Hutton, G. (ed.) ENTCS, vol. 41, Elsevier, Amsterdam (2001)
Hanus, M.: The integration of functions into logic programming: From theory to practice. Journal of Logic Programming 19&20, 583–628 (1994)
Hanus, M.: A unified computation model for functional and logic programming. In: POPL 1997, pp. 80–93 (1997)
Hanus, M.: High-level server side web scripting in Curry. In: Ramakrishnan, I.V. (ed.) PADL 2001. LNCS, vol. 1990, pp. 76–92. Springer, Heidelberg (2001)
Hanus, M., Antoy, S., Engelke, M., Höppner, K., Koj, J., Niederau, P., Sadre, R., Steiner, F.: PAKCS: The Portland Aachen Kiel Curry System (2003), Available at http://www.informatik.uni-kiel.de/~pakcs/
Hanus, M. (ed.): Curry: An integrated functional logic language, vers. 0.7.2 (2002), Available at http://www.informatik.uni-kiel.de/~curry
Nilsson, H., Fritzson, P.: Algorithmic debugging for lazy functional languages. Journal of Functional Programming 4(3), 337–370 (1994)
Nilsson, H.: Declarative Debugging for Lazy Functional Languages. PhD thesis, Linköping, Sweden (1998)
Jones, S.P., et al.: Haskell 98 language and libraries: the revised report. Journal of Functional Programming 13(1) (2003)
Pope, B.: Lee Naish. Practical aspects of declarative debugging in Haskell-98. In: ACM PPDP 2003, pp. 230–240 (2003)
Reinke, C.: GHood – graphical visualisation and animation of Haskell object observations. In: Proceedings of the 2001 ACM SIGPLAN Haskell Workshop (2001)
Shapiro, E.: Algorithmic Program Debugging. MIT Press, Cambridge (1983)
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)
Tessier, A.: Declarative debugging in constraint logic programming. In: Jaffar, J., Yap, R.H.C. (eds.) ASIAN 1996. LNCS, vol. 1179, pp. 64–73. Springer, Heidelberg (1996)
Wallace, M., Chitil, O., Brehm, T., Runciman, C.: Multiple-view tracing for Haskell. In: Proceedings of the 2001 ACM SIGPLAN Haskell Workshop (2001)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Braßel, B., Chitil, O., Hanus, M., Huch, F. (2004). Observing Functional Logic Computations. In: Jayaraman, B. (eds) Practical Aspects of Declarative Languages. PADL 2004. Lecture Notes in Computer Science, vol 3057. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24836-1_14
Download citation
DOI: https://doi.org/10.1007/978-3-540-24836-1_14
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-22253-8
Online ISBN: 978-3-540-24836-1
eBook Packages: Springer Book Archive