"Flow chart" à partir d'un code

Le
Pascal06
Bonjour à toutes et à tous,
je suis en train de développer un projet en C embarqué sur
microcontroleur.
Je souhaiterais savoir s'il existe des outils permettant, à partir du
code, de créer un "flow chart".
L'IDE que j'utilise (MPLAB X de Microchip) permet de tirer un graphe de
dépendances, mais c'est beaucoup trop succinct à mon goût.
Je suis en train de nettoyer les commentaires de mon code pour les rendre
conforme à Doxygen, mais je ne pense pas que celui-ci fasse mieux que
l'IDE.

En cherchant, j'ai trouvé un programme qui semble faire ce que je
recherche (du moins, dans la version démo que je viens d'essayer ;) )
http://www.aivosto.com/visustin.html
Connaissez vous quelque chose d'équivalent et gratuit ?

Je suis conscient que c'est un travail que j'aurai du faire avant de
commencer à code, mais là n'est pas le sujet ;)

En vous remerciant par avance,

Pascal
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Pascal J. Bourguignon
Le #26411545
Pascal06
Bonjour à toutes et à tous,
je suis en train de développer un projet en C embarqué sur
microcontroleur.
Je souhaiterais savoir s'il existe des outils permettant, à partir du
code, de créer un "flow chart".
L'IDE que j'utilise (MPLAB X de Microchip) permet de tirer un graphe de
dépendances, mais c'est beaucoup trop succinct à mon goût.
Je suis en train de nettoyer les commentaires de mon code pour les rendre
conforme à Doxygen, mais je ne pense pas que celui-ci fasse mieux que
l'IDE.
En cherchant, j'ai trouvé un programme qui semble faire ce que je
recherche (du moins, dans la version démo que je viens d'essayer ;) )
http://www.aivosto.com/visustin.html
Connaissez vous quelque chose d'équivalent et gratuit ?
Je suis conscient que c'est un travail que j'aurai du faire avant de
commencer à code, mais là n'est pas le sujet ;)
En vous remerciant par avance,

Je ne connais aucun outil permettant de faire ça.
Tout d'abort, il faut noter que les flow charts sont une representation
trés peu concise du code.
À l'époque où on pouvait remplir la mémoire avec une page de code
source, ça pouvait se faire.
Mais de nos jours, on rencontre:
- des fonctions qui sont si grandes, qu'un flow chart prendrait plus d'un
metre carré (ou nécessiterait un microscope pour être lu);
- ou si le programme est correctement structuré, des fonctions assez
petites pour être représentées graphiquement, mais alors le flow chart
devient insignifiant, et la complexité passe au graphe d'appel et au
flôt de donnée, entre un grand nombre de petites fonctions.
En fait, c'est simplement que c'est une mauvaise façon de voir le
problème, le mauvait type d'abstraction.
Pour que le problème soit compréhensible, il faut introduire les
abstractions correctes, et alors la solution, exprimée dans les termes de
ces abstractions, sera claire, nul besoin de flow chart.

Ceci dit, si tu insistes, il ne sera pas difficile d'implémenter un tel
outil. Tu peux utiliser llvm pour analyser le source C, et en tirer le
graphe d'une fonction, enregistré sous un format Graphviz, et utiliser
Graphviz pour le visualiser.

Here is a project (A CL compiler), which used GraphViz to draw the
graphs of its IR code:
https://github.com/robert-strandh/SICL/tree/master/Code/Cleavir/Intermediate-representation
https://github.com/robert-strandh/SICL/blob/master/Code/Cleavir/Intermediate-representation/HIR/graphviz-drawing.lisp
which gives something like: http://i.imgur.com/7lYzUwT.png
--
__Pascal Bourguignon__
Croire en l'histoire officielle, c'est croire des criminels sur parole.
-- Simone WEIL (1909-1943) philosophe Française.
Publicité
Poster une réponse
Anonyme