Introduction
Les outils d'analyse de programmes apportent des informations
complémentaires à celles données par le compilateur ou l'édition de
liens. Certains de ces outils pratiquent une analyse statique.
C'est-à-dire qu'ils examinent le code (sous sa forme d'un texte ou d'un
arbre de syntaxe) et en déterminent certaines propriétés comme
les dépendances entre modules ou les échappements d'exceptions.
D'autres outils pratiquent une analyse dynamique, c'est-à-dire que
leur champ d'examen est celui de l'exécution. Ils sont utiles
pour connaître par exemple le nombre d'appels aux
différentes fonctions, avoir la trace du passage de leurs arguments
ou savoir le temps passé dans certaines parties du programme.
Ils peuvent aussi être interactifs comme le sont les outils de mise au
point d'un programme. Dans ce cas l'exécution du programme est
modifiée pour tenir compte de l'interaction utilisateur. Celui-ci
peut poser des points d'arrêt dans le but d'explorer des valeurs ou de
relancer une exécution sur de nouveaux arguments.
La distribution d'Objective CAML inclut de tels outils. Certains d'entre eux
ont des caractéristiques peu communes, souvent liées au typage
statique. En effet celui-ci garantit l'absence d'erreur de typage à
l'exécution et est utilisé par le compilateur pour produire un code
efficace et des données petites. L'information de type des valeurs
Objective CAML est en partie perdue dans les valeurs construites. Cela
entraîne certaines difficultés comme par exemple l'impossibilité d'afficher les
arguments de fonctions polymorphes.