Analyse statique modulaire des langages à objet.
Dans la thèse nous présentons un cadre pour l'analyse statique de langages orientés objets qui tient compte des propriétés de modularité de ces langages. Il y a plusieurs défis à relever pour obtenir une analyse statique efficace de langages orientés objet. Tout d'abord, elle doit gérer le...
Main Author: | |
---|---|
Language: | FRE |
Published: |
Ecole Polytechnique X
2004
|
Subjects: | |
Online Access: | http://pastel.archives-ouvertes.fr/pastel-00000896 http://pastel.archives-ouvertes.fr/docs/00/50/33/75/PDF/Logozzo.pdf |
id |
ndltd-CCSD-oai-pastel.archives-ouvertes.fr-pastel-00000896 |
---|---|
record_format |
oai_dc |
spelling |
ndltd-CCSD-oai-pastel.archives-ouvertes.fr-pastel-000008962013-01-07T17:58:56Z http://pastel.archives-ouvertes.fr/pastel-00000896 http://pastel.archives-ouvertes.fr/docs/00/50/33/75/PDF/Logozzo.pdf Analyse statique modulaire des langages à objet. Logozzo, Francesco [INFO] Computer Science Interpretation Abstraite Analyse Statique Langages à objets Sémantique Invatiants de classe Dans la thèse nous présentons un cadre pour l'analyse statique de langages orientés objets qui tient compte des propriétés de modularité de ces langages. Il y a plusieurs défis à relever pour obtenir une analyse statique efficace de langages orientés objet. Tout d'abord, elle doit gérer les particularités de ces langages telles que l'héritage, le polymorphisme et la résolution de méthodes virtuelles. Deuxièmement, elle doit être modulaire. En fait, les programmes orientés objet typiques sont fait de plusieurs milliers de classes et une analyse monolithique du programmes complet peut être trop coûteuse pour être pratiquée. Troisièmement, la technologie orientée objet favorise la programmation par composants, en cela qu'un composant (une classe) est développée une fois pour toute et utilisée dans de nombreux contextes différents. Aussi, une analyse statique efficace doit pouvoir inférée des propriétés des composants valides pour toutes les instantiations possibles de contextes. Dans cette thèse, nous présentons une analyse qui relève les défis esquissés ci-dessus. En particulier, nous nous concentrons sur une analyse qui peut inférer des invariants de classe. Un invariant de classe est une propriété d'une classe valide pour chaque instanciation, avant et après l'exécution de n'importe quelle méthode de la classe. Notre analyse a plusieurs avantages. Elle est indépendante du langage, elle exploite la structure modulaire des langages orientés objet et elle gère les principales fonctionnalités de ces langages, à savoir l'héritage, le polymorphisme et l'encapsulation. Le cadre présenté dans cette thèse est très flexible. En particulier, il permet de régler finement l'analyse selon les trois axes orthogonaux suivants: - Domaine abstrait sous-jacent: une classe peut être analysée en utilisant soit un domaine abstrait générique soit un domaine abstrait symbolique de façon à obtenir une analyse plus efficace mais moins précise. - Gestion de l'héritage: une sous-classe peut être analysée soit directement, en expansant syntaxiquement la relation de sous-classe, soit indirectement, en utilisant l'invariant du parent afin d'éviter une explosion quadratique de la complexité. -Traitement des contextes d'instantiation: une classe peut être utilisée soit indépendamment du contexte, afin d'obtenir un résultat valable dans tous les contextes, soit en utilisant une approximation du contexte afin d'obtenir un résultat plus précis mais moins général. 2004-06-15 FRE PhD thesis Ecole Polytechnique X |
collection |
NDLTD |
language |
FRE |
sources |
NDLTD |
topic |
[INFO] Computer Science Interpretation Abstraite Analyse Statique Langages à objets Sémantique Invatiants de classe |
spellingShingle |
[INFO] Computer Science Interpretation Abstraite Analyse Statique Langages à objets Sémantique Invatiants de classe Logozzo, Francesco Analyse statique modulaire des langages à objet. |
description |
Dans la thèse nous présentons un cadre pour l'analyse statique de langages orientés objets qui tient compte des propriétés de modularité de ces langages. Il y a plusieurs défis à relever pour obtenir une analyse statique efficace de langages orientés objet. Tout d'abord, elle doit gérer les particularités de ces langages telles que l'héritage, le polymorphisme et la résolution de méthodes virtuelles. Deuxièmement, elle doit être modulaire. En fait, les programmes orientés objet typiques sont fait de plusieurs milliers de classes et une analyse monolithique du programmes complet peut être trop coûteuse pour être pratiquée. Troisièmement, la technologie orientée objet favorise la programmation par composants, en cela qu'un composant (une classe) est développée une fois pour toute et utilisée dans de nombreux contextes différents. Aussi, une analyse statique efficace doit pouvoir inférée des propriétés des composants valides pour toutes les instantiations possibles de contextes. Dans cette thèse, nous présentons une analyse qui relève les défis esquissés ci-dessus. En particulier, nous nous concentrons sur une analyse qui peut inférer des invariants de classe. Un invariant de classe est une propriété d'une classe valide pour chaque instanciation, avant et après l'exécution de n'importe quelle méthode de la classe. Notre analyse a plusieurs avantages. Elle est indépendante du langage, elle exploite la structure modulaire des langages orientés objet et elle gère les principales fonctionnalités de ces langages, à savoir l'héritage, le polymorphisme et l'encapsulation. Le cadre présenté dans cette thèse est très flexible. En particulier, il permet de régler finement l'analyse selon les trois axes orthogonaux suivants: - Domaine abstrait sous-jacent: une classe peut être analysée en utilisant soit un domaine abstrait générique soit un domaine abstrait symbolique de façon à obtenir une analyse plus efficace mais moins précise. - Gestion de l'héritage: une sous-classe peut être analysée soit directement, en expansant syntaxiquement la relation de sous-classe, soit indirectement, en utilisant l'invariant du parent afin d'éviter une explosion quadratique de la complexité. -Traitement des contextes d'instantiation: une classe peut être utilisée soit indépendamment du contexte, afin d'obtenir un résultat valable dans tous les contextes, soit en utilisant une approximation du contexte afin d'obtenir un résultat plus précis mais moins général. |
author |
Logozzo, Francesco |
author_facet |
Logozzo, Francesco |
author_sort |
Logozzo, Francesco |
title |
Analyse statique modulaire des langages à objet. |
title_short |
Analyse statique modulaire des langages à objet. |
title_full |
Analyse statique modulaire des langages à objet. |
title_fullStr |
Analyse statique modulaire des langages à objet. |
title_full_unstemmed |
Analyse statique modulaire des langages à objet. |
title_sort |
analyse statique modulaire des langages à objet. |
publisher |
Ecole Polytechnique X |
publishDate |
2004 |
url |
http://pastel.archives-ouvertes.fr/pastel-00000896 http://pastel.archives-ouvertes.fr/docs/00/50/33/75/PDF/Logozzo.pdf |
work_keys_str_mv |
AT logozzofrancesco analysestatiquemodulairedeslangagesaobjet |
_version_ |
1716397551403401216 |