Fouille de programmes Pr. D.E ZEGOUR
|
|
Application développée:
Données On a en entrée une table DB avec les champs suivants : 'Nom1', 'Prénom1', 'Groupe1', 'Nom2', 'Prénom2', 'Groupe2', 'Programme' La table est indexée sur les champs 'Nom1' et 'Prénom1'. Le champ 'Programme' fournit le chemin complet du programme source. Les champs 'Nom2', 'Prénom2', 'Groupe2' sont facultatifs. Tous les sources sont dans un même répertoire. On peut visualiser la table. On peut afficher tous les programmes.
Plateforme On peut construire la plateforme. Il s’agit de mettre en RAM tous les programmes. Les programmes sont découpés en modules Chaque module est découpé en lignes (déclaration ou une instruction). Chaque ligne en unités lexicales. Pour chaque module, on récupère toutes ses variables locales ainsi que sa signature. La signature est l’ensemble des premiers mots-clés de chaque ligne représentant soit une déclaration ou une instruction. Pour les affectations, on utilisera AFF. Elle met donc en relief la structure du module.
On peut visualiser les unités lexicales, les signatures et les variables du premier programme.
On peut alors passer d’un programme à l’autre en sens bidirectionnel ou carrément visualiser tous les programmes dans une même fenêtre.
A l’intérieur d’un programme, on peut parcourir les modules dans les deux sens. A tout moment, on peut imprimer le contenu de la fenêtre.
Fouille L’un des buts de la fouille est de déceler les ressemblances entre programmes. Ces ressemblances peuvent résider au niveau - des variables - des structures de données - des structures de contrôle - lexical - des statistiques -etc. La fouille permet aussi de dresser des statistiques sur les programmes en déterminant le nombre de modules, le nombre de variables, les profondeurs des structures de contrôle, le nombre de structures de données, etc. |
|