Thèse soutenue

Conception d'un langage dédié à l'analyse et la transformation de programmes

FR  |  
EN
Auteur / Autrice : Emilie Balland
Direction : Claude KirchnerPierre-Etienne Moreau
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 11/03/2009
Etablissement(s) : Nancy 1
Ecole(s) doctorale(s) : IAEM Lorraine
Partenaire(s) de recherche : Laboratoire : LORIA
Jury : Président / Présidente : Rachid Echahef
Examinateurs / Examinatrices : Claude Kirchner, Pierre-Etienne Moreau, Olivier Dancy, Stéphane Ducasse, Rachid Echahed, Joost Visser, Bernard Girau
Rapporteurs / Rapporteuses : Olivier Dancy, Stéphane Ducasse

Résumé

FR  |  
EN

Développer des analyseurs statiques nécessite une manipulation intensive de structures d'arbres et de graphes représentant le programme. La finalité de cette thèse est de proposer des constructions de langage dédiées au prototypage d'outils d'analyse et de transformation de programmes et inspirées de la réécriture de termes et de termes-graphes. L'originalité de notre approche est d'embarquer ces nouvelles constructions dans les langages généralistes sous la forme d'un langage dédié embarqué. Les travaux de cette thèse se fondent sur le langage Tom qui propose d'embarquer des constructions de réécriture dans des langages généralistes comme Java. La première contribution de cette thèse a été de formaliser les langages embarqués sous le concept de langage îlot. Ce formalisme a ainsi permis de certifier la compilation du langage Tom. Nos travaux sur l'analyse de Bytecode nous ont ensuite conduit à réfléchir à la représentation et la manipulation de graphes de flot de programmes et nous avons alors proposé des constructions de langage inspirées de la réécriture de termes-graphes. Une autre contribution de cette thèse est la conception d'un langage de stratégies adapté à l'expression de propriétés sur un programme. Associé au filtrage, ce langage permet d'exprimer de manière déclarative des analyses et des transformations sur des arbres ou des graphes. Enfin, l'ensemble des propositions de cette thèse a été intégré au langage Tom sous la forme de nouvelles constructions syntaxiques ou d'améliorations de constructions existantes et a ainsi pu être appliqué à l'analyse du langage Java.