Author: Christian.Queinnec@lip6.fr

## Summary

This chapter presented the different programming support tools that come with the Objective CAML distribution.
The first tool performs a static analysis in order to determine the dependencies of a set of compilation units. This information can then be put in a `Makefile`, allowing for separate compilation (if you alter one source file in a program, you only have to compile that file, and the files that have dependencies to it, rather than the entire program).
Other tools give information about the execution of a program. The interactive toplevel offers a trace of the execution; but, as we have seen, polymorphism imposes quite heavy restrictions on the observable values. In fact, only the global declarations of monomorphic values are visible, which nevertheless includes the arguments of monomorphic functions and permits tracing of recursive functions.
The last tools are those in the tradition of development under Unix, namely a debugger and a profiler. With the first, you can execute a program step by step to examine it's operation, and the second gives information about its performance. Both are usable only under Unix.