Seminar/2009-02-25

From LRDE

Mercredi 25 février 2009, 14h-17h, Amphi 1


Mise en oeuvre et application des extensions de langages

Patrick Viry, Ateji

Je présenterai sur la base d'une démo une application des extensions de langages, à savoir une extension Java pour l'optimisation. Cet exemple montre la mise en oeuvre concrète dans Eclipse, les gains de productivité et de qualité obtenus par rapport aux approches classiques Java+DSL, la différence entre cette approche et un générateur de code ou un préprocesseur. Il montre également une utilisation originale d'un compilateur: la génération automatique d'interface graphique.

Je parlerai aussi des futurs projets d'Ateji dans le domaine des extensions de langage.

Patrick Viry a obtenu un doctorat d'informatique à l'INRIA-Lorraine en 1992. Il a poursuivi une carrière de chercheur à l'Université de Kyoto, sur deux thèmes principaux: les modèles théoriques du parallélisme et les outils de développement de type éditeur syntaxique. Il a rejoint l'industrie en 1999, d'abord dans une société japonaise réalisant des contrats pour le MITI, puis en tant qu'architecte du langage OPL chez Ilog. Il a fondé Ateji en 2005 pour développer et commercialiser des technologies innovantes dans le domaine des langages et des outils de programmation.

www.ateji.com

Programmation par règles : application à la transformation d'arbres en Java

Pierre-Etienne Moreau - INRIA Nancy - Grand Est

Dans cet exposé je présenterai un outil, appelé Tom, qui permet de simplifier la programmation d'outils de manipulation et de transformation de structures arborescentes, telles que les AST (Abstract Syntax Trees) ou les documents XML par exemple. Tom est un langage de programmation qui ajoute à Java des constructions inspirées du calcul de réécriture et des langages à base de règles. On peut, de manière approximative, voir Tom comme une intégration d'un sous-ensemble de Caml dans Java.

Le langage repose sur trois notions fondamentales :

(i) les termes, qui sont un modèle universel permettant de décrire des structures arborescentes, et en particulier les notions de programmes et de preuves.

(ii) les règles, qui permettent de décrire de manière expressive des transformations.

(iii) les stratégies, qui permettent de contrôler l'application des règles.

La séparation transformation-contrôle est un point essentiel permettant de rendre les règles indépendantes de leur contexte d'utilisation, facilitant ainsi leur écriture, leur réutilisation et l'établissement de propriétés.

Le Langage Tom est parfaitement adapté à la réalisation d'outils de transformation et de prouveurs. Son intégration dans Java rend son utilisation facile, aussi bien dans le milieu académique que dans le milieu industriel.

Pierre-Étienne Moreau est Chargé de Recherche à l'INRIA Nancy-Grand Est, responsable de l'équipe Pareo. Il s'intéresse au développement d'outils et de langages permettant de développer plus rapidement des applications complexes et ceci de manière plus sûre. Dans ce cadre, il a développé au cours de sa thèse le compilateur du langage ELAN. Depuis 2001, il coordonne le développement de l'environnement Tom, qui permet d'intégrer et d'utiliser les notions de réécriture, de stratégie, de filtrage équationnel dans un environnement de programmation Java. Les principales applications à ce jour sont la réalisation de compilateurs, d'outils d'analyse et de transformation de programmes, ainsi que des prouveurs automatiques.

http://tom.loria.fr, http://www.loria.fr/~moreau