2009-11-08 23 views
0

J'essaie de dessiner un graphique de flux de contrôle (CFG) à partir du code source en utilisant la bibliothèque de graphes GLEE et le langage C#. Le problème est, je suis nouveau à GLEE. J'ai besoin d'un tutoriel ou d'exemples de programmes/projets pour m'aider à démarrer rapidement avec GLEE. La source pour laquelle j'ai besoin de dessiner un CFG a la structure suivante:Besoin d'aide pour dessiner un graphique de flux de contrôle avec GLEE et C#

begin myProcedure 
    statement 1; 
    statement 2; 
    if(condition) then 
    statement 3; 
    else 
    statement 4; 
    end if 
end myProcedure 

Des idées?

Répondre

0

On dirait que vous êtes nouveau en C#, étant donné que GLEE n'est pas disponible depuis près de 2 ans (remplacé par MSAGL, un produit payant qui vient avec des exemples) Je pense que vous pourriez avoir du mal à D'abord, trouvez des exemples et ensuite, obtenez un soutien. Il semble que vous pouvez obtenir MSAGL pour $99 at the moment (en baisse de 295 $), pourrait valoir l'investissement pour le gain de temps.

1

À moins que vous ne câbliez le graphique de flux de contrôle dans votre réponse (devoirs?), Le graphique n'est pas la partie la plus difficile de ce problème. Extraire le graphique de flux de contrôle à partir du code source de votre langue est.

Votre exemple n'est clairement pas C# (BEGIN?), Vous aurez donc besoin de trouver un analyseur de langue; vous aurez besoin de quelque chose pour faire le nom et la résolution de type (pour gérer les GOTO à des étiquettes ou des sorties de blocs nommés), et construire un graphique de flux comme une structure de données de graphique. Si vous traitez quelque chose comme GCC (langage de type C avec GOTO indirect), vous aurez besoin d'une analyse de pointeur pour déterminer les cibles possibles des GOTO indirects. Si vous avez l'intention de traiter C#, ou Java, vous pourrez peut-être extraire le contrôle des fichiers de classe (en rencontrant les mêmes problèmes) et vous devrez ensuite le mapper au code source.

Il est plus facile d'effectuer une telle tâche si vous avez beaucoup de machines disponibles (analyse, résolution de noms, bibliothèque de construction de graphe de contrôle-flux) sur lesquelles construire votre extracteur de graphe de contrôle-flux. Le DMS Software Reengineering Toolkit fournit toutes ces bases, ainsi que des parseurs pour de nombreuses langues. Pour C, Java et COBOL, DMS fournit également l'extraction directe des graphes de flux de contrôle traitant tous les problèmes ci-dessus et même les graphiques de flux de données. Voir sample control and data flow graphs.