Observing Functional Logic Computations

by Bernd Bra├čel, Olaf Chitil, Michael Hanus, Frank Huch

Proc. of the Sixth International Symposium on Practical Aspects of Declarative Languages (PADL'04), Springer LNCS 3057, pp. 193-208, 2004
© Springer-Verlag

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.

Preprint (PDF) BibTeX-Entry Online