Oug
Qu'est-ce que Oug ?

Oug est un outil d'analyse de code permettant de construire des graphes de références à partir de code OCaml, c'est-à-dire des graphes représentant quels éléments (valeur, module, classe, ...) référencent quels éléments. Nous appellerons également ces graphes des graphes de dépendances, les arcs des graphes étant annotés par un type de dépendance.

La bibliothèque Oug incluse permet d'embarquer les fonctionnalités de l'outil dans d'autres applications OCaml.

A partir du graphe, plusieurs sorties peuvent être obtenues: liste des éléments non référencés (élément inutiles révélateurs de code potentiellement inutile), différents graphes au format Graphviz, ...

Oug ne calcule pas le graphe d'appel du code OCaml analysé; cela nécessiterait une analyse du flot de données. Pour cette raison, la recherche des "éléments inutiles" considère que chaque méthode de classe est référencée.

Installation

Voir la section télécharger pour obtenir et installer Oug.

Documentation
Certaines pages ne sont pas encore traduites en français.

Utilisation

Un guide rapide pour commencer à utiliser Oug sur votre code: Guide de démarrage.

La section Filtres décrit le langage de filtres, utilisé pour trouver des éléments dans le graphe, avec force exemples.

La bibliothèque Oug peut être utilisée pour embarquer l'analyseur dans d'autres applications OCaml. La documentation de référence se trouve ici. Le module principal (oug.ml) de l'outil oug utilise cette bibliothèque et peut servir d'exemple pour l'usage de la bibliothèque.

Références
Maxence Guesdon: Fouille au code OCaml par analyse de dépendances
Journées Francophones des Langages Applicatifs 2009.
Licence

Oug est distribué sous licence GPL.

Choses à faire

Il reste des choses à ajouter, notamment:

  • la gestion des modules récursifs,
  • la gestion des classes et objets.