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