From: Basile Starynkevitch
<basile(a)starynkevitch.net>
Date: June 18, 2010 7:09:03 AM GMT+02:00
To: stephane ducasse <stephane.ducasse(a)free.fr>
Subject: Re: contact au sujet de votre analyseur C++
Reply-To: basile(a)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} ***