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...

Full description

Bibliographic Details
Main Author: Logozzo, Francesco
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