Skip to topic | Skip to bottom
Home
Publications
Publications.Seminar-2004-06-02r1.3 - 04 Jun 2004 - 15:38 - ClementVasseur?topic end

Start of topic | Skip to actions

LRDE Seminar : Transformers, 2 June 2004, EPITA, Salle P04

14h00 : Transformers : Transformation de programmes pour le C++ -- Clément Vasseur?

Le projet Transformers a pour objectif de fournir un environnement de transformation de programmes pour le C++. Il est basé sur StrategoXT, un ensemble d'outils de réécriture suivant le paradigme des stratégies.

De récents progrès nous ont permis d'améliorer sensiblement l'état du projet. Parmi les avancées remarquables, on peut noter l'ajout de nouveaux filtres de désambiguisation, la gestion des directives de préprocesseur, et une amélioration de l'infrastructure du projet et de la batterie de tests.

Nous ferons dans cet exposé un état des lieux du projet tel qu'il est actuellement, en détaillant les principaux axes de travaux récents, ainsi que les recherches envisagées pour le futur proche.

14h30 : Grammaires attribuées et StrategoXT pour la désambiguisation du C++ dans Transformers -- Valentin David

Dans Transformers, les données proches de la syntaxe du C++ sont incluses dans la grammaire. Cela facilite la maintenance, améliore la modularité, réduit les risques d'erreur s. Cependant, la désambiguisation reste détachée.

Le C++ est sensible au contexte, cependant on utilise une grammaire hors contexte ambiguë comme support. Il faut donc trouver un formalisme pour introduire le contexte dans c ette grammaire. Une solution retenue est d'exprimer ce contexte à l'aide d'une grammaire attribuée. Dans le monde de StrategoXT, les grammaires attribuées n'existent pas, mais la modularit é de cet environnement permet de rajouter ces fonctionnalités.

Cet exposé présentera d'abord les grammaires attribuées, ensuite, une tentative d'implémentation dans StrategoXT. Enfin, nous verrons comment écrire la désambiguisation du C++ à l'aide de cette technique.

15h30 : Transformers: Vérification des types en C++ -- Julien Roussel?

En programmation, les types des données sont utilisés pour regrouper en catégories bien distinctes les valeurs (données) que l'on veut manipuler. Cette caractérisation cherche à distinguer les données selon leur nature, dans une classification qui est sémantique. La vérification des types est une étape de l'analyse des programmes qui permet de détecter et de réduire les erreurs d'incohérence entre les types introduites par le programmeur.

Ces informations assurent une sûreté supplémentaire dans les programmes et permettent entre autre d'améliorer la désambiguisation sémantique dans le projet Transformers (un environnement de transformation de programmes pour le C++). Le langage C++, de part sa complexité, fait de la vérification des types un problème épineux, surtout lors du traitement des templates.

Cet exposé présentera une solution élégante pour une vérification des types efficace dans Transformers, ce qu'elle apporte et les problèmes qu'elle pose.

16h15 : Les générateurs de générateur de code -- Clément Vasseur?

La fonction principale de la partie terminale (back-end) d'un compilateur est la sélection d'instructions. Son rôle est de transformer la représentation intermédiaire du programme en instructions assembleur pour la machine cible.

Il existe différentes méthodes pour rendre la sélection d'instructions systématique et performante. Ainsi, il est possible de générer le générateur de code, de manière analogue à la génération d'analyseur syntaxique. Le but est de créer le générateur de code à partir d'une spécification indiquant la correspondance entre les sous-arbres de représentation intermédiaire et des instructions à émettre.

Dans un premier temps, nous verrons comment se passe la génération de code, puis nous verrons les méthodes qui permettent de l'automatiser. Enfin nous en verrons une implémentation concrète appliquée au Tiger d'Appel.
to top


You are here: Publications > Seminar-2004-06-02

to top

Copyright © 1999-2010 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback