COOSy

The Curry Object Observation System


Overview | Download | Documentation | Authors

Overview

COOSy is an implementation of a lightweight approach for debugging functional logic programs in Curry by observations. It consists of a library plus a viewing tool. Programmers can annotate their program with observation functions for data structures and functions which may both contain or be applied to logical variables. The parts of observed objects that are evaluated during the execution are recorded in a trace file and can be viewed by means of a pretty printer integrated in a graphical user interface. The tool covers all aspects of modern functional logic multiparadigm languages such as lazy evaluation, higher order functions, non-deterministic search, logical variables, concurrency and constraints.

Implementation

The implementation of COOSy is freely available and integrated in the distribution of the Curry programming environment PAKCS.

If you use another implementation of Curry, you might try to install the implementation of COOSy manually. The implementation consists of a collection of Curry modules which are available as a gzipped tar file (see the INSTALL file in the distribution for installation instructions).

Requirements for installing COOSy: Since COOSy is implemented in Curry, it requires an installed Curry system. The implementation uses various system libraries (GUI programming, etc) which are available in the PAKCS distribution (look for the latest release). Thus, you should have PAKCS (Version 1.6) installed in order to compile COOSy. Since the implementation is mainly based on the GUI library of PAKCS, you need also a Tcl/Tk implementation (including the windowing shell wish) which can be downloaded here.

Documentation

Currently, there is no detailed user manual for COOSy but the system contains a short "help" function. A more detailed description of COOSy can be found in the following paper.
Observing Functional Logic Computations
This paper describes the functionality and the main ideas behind the implementation of COOSy.
Slides: Observing Functional Logic Computations
Slides for a talk given at PADL'04 on COOSy.

The COOSy team:

COOSy is developed by Do not hesitate to contact us if you have further questions!


Curry Homepage | PAKCS Homepage | COOSy distribution

Michael Hanus