CSI Seminar: 9 Juillet 2008, Transformers et Vaucanson, EPITA, Amphi masters, KB
TRANSFORMERS
14h00 Implémentation d’une extension du C++ dans Transformers : class namespace -- Vincent Ordy
Les classes en C++ sont fermées, c’est-à-dire qu’on ne peut rien
leur ajouter une fois leur définition terminée. Or, la plupart
du temps, les programmeurs séparent la définition de l’implémentation,
ce qui oblige à utiliser une syntaxe répétitive,
en particulier dans le cas de patrons de classes ou de classes
imbriquées. On se propose donc de faire une extension de la
grammaire du C++ permettant via une syntaxe proche de celle
des namespaces de définir plus aisément des méthodes ou attributs
statiques déjà déclarés dans la définition de la classe.
Dans ce but, nous utiliserons la grammaire du C++ implémentée
dans Transformers, et des transformations écrites en Stratego.
14h30 Centaur : Une infrastructure générique simplifiant les transformations de C++ -- Cedric Raud?
La grammaire du standard du C++ n’ayant pas été conçue
pour etre aisément analysable, son utilisation dans le cadre de
la manipulation de programme est comparable à la complexité
de l’AST généré par celle-ci. Le rôle de Centaur au sein de
Transformers est ainsi de fournir une infrastructure générique
permettant de manipuler et de synthétiser cet AST : les transformations
de programmes sont simplifiées gràce a un accès
plus aisé aux informations contenues dans l’arbre syntaxique
et ses annotations. Grâce à cette bibliotheque, les tâches répétitives
et souvent génératrices d’erreurs, comme l’énumération
des éléments d’un conteneur ou la recherche des classes parentes
d’une classe, seront factorisées par un ensemble de fonctions
correspondant à un modèle modulaire et extensible.
15h00 Désambiguïsation des patrons de type C++ avec les Grammaires Attribuées de Transformers -- Warren Seine
Malgré sa sensibilité au contexte, le C++ est analysable avec
une grammaire hors-contexte mais ambigüe. La désambiguïsation
est ensuite nécéssaire pour sélectionner le seul arbre syntaxique
sémantiquement valide. Transformers est une collection
d’outils pour la transformation de programmes C++ qui
utilise les grammaires attribuées pour réaliser cette étape. Une
des plus difficiles ambiguités dans le langage concerne la métaprogrammation.
Puisque du code est généré à l’instanciation,
tous les types ne sont pas nécéssairement connus à la déclaration.
La vérification des types est donc obligatoire pour traiter
totalement le cas des patrons, ce qui pose un véritable défi. Ce
rapport se concentre sur la désambiguïsation des patrons de
type et détaille les problèmes et leur méthode de résolution,
afin de fournir une meilleure plateforme de manipulation de
sources.
VAUCANSON
15h45 Interface graphique de Vaucanson -- Florent DHalluin
Vaucanson est une plateforme de manipulation d’automates
finis. Débuté en 2002, le projet attire de plus en plus d’utilisateurs.
De ce fait, une interface utilisateur efficace est nécessaire.
Pour l’utilisateur non expert, la manipulation d’automates
peut s’effectuer via taf-kit, une suite d’outils accessible en ligne
de commande. Une première interface graphique avait été esquissée
en 2005, mais son fonctionnement était lent et compliqué
car elle s’appuyait sur taf-kit pour réaliser chaque opération.
Cette nouvelle interface graphique, branchée directement sur
le coeur de la bibliothèque pour plus d’efficacité, simplifie la
manipulation d’automates et rend accessible les algorithmes
génériques de Vaucanson.
16h15 Amélioration de la composition des transducteurs dans Vaucanson –- Jerome Galtier
Vaucanson est une bibliothèque dont un des buts est de permettre
un accès facilité à des automates et aux algorithmes qui
leur sont associés. Elle met donc à notre disposition plusieurs
algorithmes standard (et d’autres moins conventionnels) tels
que la déterminisation, le calcul des états accessibles etc. L’un
de ces algorithmes est la composition de transducteurs. Celuici
n’est pas d’une nature aisée à aborder et son implémentation
dans Vaucanson est perfectible. Améliorer l’implémentation
d’un tel algorithme est alors un bon moyen de mettre à
l’épreuve certains choix de conception dans Vaucanson.
to top