Transformers et Vaucanson – Juillet 2008


logo-lrde.jpg

Les étudiants de l’option CSI présentent leurs travaux. Cette semaine, comme la semaine dernière, ce sont des étudiants de la promo 2010 qui interviendront ce mercredi 9 juillet, à 14h, en amphi Masters.

 

 

Le programme : Transformers et Vaucanson

  • TRANSFORMERS

– 14h00 : Implémentation d’une extension du C++ dans Transformers : class namespace par Vincent Ordy

– 14h30 : Centaur : Une infrastructure générique simplifiant les transformations de C++ par Cedric Raud

– 15h00 : Désambiguïsation des patrons de type C++ avec les Grammaires Attribuées de Transformers par Warren Seine

 

  • VAUCANSON

– 15h45 : Interface graphique de Vaucanson par Florent D’Halluin

– 16h15 : Amélioration de la composition des transducteurs dans Vaucanson
par Jerome Galtier

 

Les Résumés des exposés  :

  • TRANSFORMERS

Implémentation d’une extension du C++ dans Transformers : class namespace par 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.

 

Centaur : Une infrastructure générique simplifiant les transformations de C++ par 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.

– Désambiguïsation des patrons de type C++ avec les Grammaires Attribuées de Transformers par 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

Interface graphique de Vaucanson par Florent D’Halluin

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 ‘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.

Amélioration de la composition des transducteurs dans Vaucanson par 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 ransducteurs. Celui-ci 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.