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

Emilie Balland 1
1 PAREO - Formal islands: foundations and applications
INRIA Lorraine, LORIA - Laboratoire Lorrain de Recherche en Informatique et ses Applications
Abstract : Developing static analyzers requires an intensive handling of tree and graph structures representing the program. Even if generalist languages such as Java or C++ have libraries dedicated to the manipulation of such structures, the absence of specialized statements makes the code complex and difficult to maintain. The purpose of this thesis is to provide dedicated language constructs to prototype tools for analysis and program transformation inspired by the term and term-graph rewriting. The originality of our approach is to embed these new statements in generalist languages. This is motivated by the development of the Tom language that offers rewriting constructs for generalist languages like Java. The first contribution of this thesis is to formalize embedded languages in the concept of island languages. This formalism enables the certification of the Tom compiler. Our work on Bytecode analysis leads us to propose a dedicated language for the representation and manipulation of program flow graphs. Thus we propose language constructs based on the term-graph rewriting. A further contribution of this thesis is to design a strategy language adapted to the expression of properties on a program. Associated with matching capabilities, this language allows to express in a declarative way analysis and transformations on trees or graphs. Finally, all the proposals of this thesis have been integrated into the Tom language in the form of new statements or improvements of existing ones. This language proposal has been applied to the analysis of Java programs.
Document type :
Complete list of metadatas

Cited literature [64 references]  Display  Hide  Download
Contributor : Emilie Balland <>
Submitted on : Wednesday, November 25, 2009 - 11:06:34 AM
Last modification on : Saturday, May 19, 2018 - 1:26:42 AM
Long-term archiving on : Tuesday, October 16, 2012 - 2:50:31 PM


  • HAL Id : tel-01748507, version 2



Emilie Balland. Conception d'un langage dédié à l'analyse et la transformation de programmes. Génie logiciel [cs.SE]. Université Henri Poincaré - Nancy 1, 2009. Français. ⟨NNT : 2009NAN10026⟩. ⟨tel-01748507v2⟩



Record views


Files downloads