Begin forwarded message:
From: Basile Starynkevitch basile@starynkevitch.net Date: June 18, 2010 7:09:03 AM GMT+02:00 To: stephane ducasse stephane.ducasse@free.fr Subject: Re: contact au sujet de votre analyseur C++ Reply-To: basile@starynkevitch.net
On Thu, 2010-06-17 at 23:20 +0200, stephane ducasse wrote:
merci
on cherche a extraire un modele "object" class variable methodes invocation de methodes... de C++ est ce que cela serait possible/simple de faire cela avec melt.
Les aspects *declarations* (de classes, de méthodes)... sont dans GCC en représentation Generic/Tree.
Les aspects *instructions* (corps de méthode ou de fonction) sont dans GCC en représentation Gimple.
MELT permet de manipuler aussi bien les Tree que les Gimple, mais je suis bien plus familier avec Gimple que avec Tree.
Et de toutes façons, rien n'est "simple" avec GCC. GCC est un très gros code (4.5 millions de lignes!), un peu vieux et fouilli, avec une documentation disparate. Sa taille est lié à sa puissance, mais c'est quand même compliqué.
Disons qu'il faudrait au moins un stagiaire motivé pendant un trimestre pour débroussailler le sujet et avoir peut-être un résultat. (Mais je n'ai pas compris le détail de tes besoins).
Toutefois, sur les aspects déclarations C++, dans le projet GlobalGCC, une équipe universitaire de Madrid UPM a travaillé dans GCC (mais pas avec MELT qui à l'époque était embryonnaire).
Il y a une difficulté préalable à tout ça. Savoir simplement compiler gcc 4.5 -ou la branche GCC MELT [c'est la même difficulté, les dépendances sont les mêmes]. J'ai un stagiaire (brillant et motivé) de licence, Jérémie Salvucci, qui y est arrivé tout seul en 2 jours. Mais il y a aussi eu 2 stagiaires de Mastère chez Emmanuel Chailloux (Paris 6 PPS) qui ont peinés simplement pour compiler GCC, et l'un a abandonné son stage!
L'idéal serait peut-être d'essayer de compiler GCC MELT et de jouer avec.
Extraire les informations de class variable methodes invocation de methodes... de C++ avec GCC MELT est possible, mais je ne crois pas que ça soit simple, pour la bonne raison que rien n'est simple dans GCC. MELT simplifie la vie de ceux qui ont compris (un peu) les représentations internes de GCC et les passes, mais il faut faire l'effort de le comprendre. MELT n'enlève pas la difficulté de compréhension des internes de GCC, c'est juste un outil pour les manipuler plus facilement.
A bientôt.
-- Basile STARYNKEVITCH http://starynkevitch.net/Basile/ email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359 8, rue de la Faiencerie, 92340 Bourg La Reine, France *** opinions {are only mines, sont seulement les miennes} ***