Design of a programming language dedicated to program analysis and transformation ; Conception d'un langage dédié à l'analyse et la transformation de programmes
Gespeichert in:
| Titel: | Design of a programming language dedicated to program analysis and transformation ; Conception d'un langage dédié à l'analyse et la transformation de programmes |
|---|---|
| Autoren: | Balland, Emilie |
| Weitere Verfasser: | Formal islands: foundations and applications (PAREO), INRIA Lorraine, Institut National de Recherche en Informatique et en Automatique (Inria)-Institut National de Recherche en Informatique et en Automatique (Inria)-Laboratoire Lorrain de Recherche en Informatique et ses Applications (LORIA), Institut National de Recherche en Informatique et en Automatique (Inria)-Université Henri Poincaré - Nancy 1 (UHP)-Université Nancy 2-Institut National Polytechnique de Lorraine (INPL)-Centre National de la Recherche Scientifique (CNRS)-Université Henri Poincaré - Nancy 1 (UHP)-Université Nancy 2-Institut National Polytechnique de Lorraine (INPL)-Centre National de la Recherche Scientifique (CNRS), Université Henri Poincaré - Nancy 1, Claude Kirchner, Pierre-Etienne Moreau |
| Quelle: | https://tel.archives-ouvertes.fr/tel-01748507 ; Génie logiciel [cs.SE]. Université Henri Poincaré - Nancy 1, 2009. Français. ⟨NNT : 2009NAN10026⟩. |
| Verlagsinformationen: | HAL CCSD |
| Publikationsjahr: | 2009 |
| Bestand: | Archive ouverte HAL (Hyper Article en Ligne, CCSD - Centre pour la Communication Scientifique Directe) |
| Schlagwörter: | Programming languages, embedded languages, static analysis, program transformation, rewriting, term-graphs, langages de programmation, langages embarqués, analyse statique, transformation de programmes, réécriture, stratégies, termes-graphes, [INFO.INFO-SE]Computer Science [cs]/Software Engineering [cs.SE] |
| Beschreibung: | 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. ; 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 ... |
| Publikationsart: | doctoral or postdoctoral thesis |
| Sprache: | French |
| Relation: | NNT: 2009NAN10026; tel-01748507; https://tel.archives-ouvertes.fr/tel-01748507; https://tel.archives-ouvertes.fr/tel-01748507v2/document; https://tel.archives-ouvertes.fr/tel-01748507v2/file/manuscrit.pdf |
| Verfügbarkeit: | https://tel.archives-ouvertes.fr/tel-01748507 https://tel.archives-ouvertes.fr/tel-01748507v2/document https://tel.archives-ouvertes.fr/tel-01748507v2/file/manuscrit.pdf |
| Rights: | info:eu-repo/semantics/OpenAccess |
| Dokumentencode: | edsbas.F0D6B76D |
| Datenbank: | BASE |
| 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. ; 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 ... |
|---|
Nájsť tento článok vo Web of Science