Un interpréteur extensible pour le prototypage des langages d'aspects
L'intérêt de l'utilisation de différents langages d'aspects pour faire face à une variété de préoccupations transverses dans le développement de systèmes logiciels complexes est reconnu. Il faudrait être capable d'utiliser plusieurs de ces langages dans un seul logiciel donné. Ce...
Main Author: | |
---|---|
Language: | ENG |
Published: |
Université de Nantes
2011
|
Subjects: | |
Online Access: | http://tel.archives-ouvertes.fr/tel-00726510 http://tel.archives-ouvertes.fr/docs/00/72/65/10/PDF/Assaf-phd2011.pdf |
id |
ndltd-CCSD-oai-tel.archives-ouvertes.fr-tel-00726510 |
---|---|
record_format |
oai_dc |
spelling |
ndltd-CCSD-oai-tel.archives-ouvertes.fr-tel-007265102013-10-15T03:02:39Z http://tel.archives-ouvertes.fr/tel-00726510 http://tel.archives-ouvertes.fr/docs/00/72/65/10/PDF/Assaf-phd2011.pdf Un interpréteur extensible pour le prototypage des langages d'aspects Assaf, Ali [INFO:INFO_SE] Computer Science/Software Engineering [INFO:INFO_PL] Computer Science/Programming Languages programmation par aspects interpréteur sémantique prototypage composition langage d'aspects dédié L'intérêt de l'utilisation de différents langages d'aspects pour faire face à une variété de préoccupations transverses dans le développement de systèmes logiciels complexes est reconnu. Il faudrait être capable d'utiliser plusieurs de ces langages dans un seul logiciel donné. Cependant, d'une part la phase de développement d'un nouveau langage dédié capturant tous les patrons de programmation du domaine prend beaucoup de temps et, d'autre part, le concepteur doit gérer les interactions avec les autres langages quand ils sont utilisés simultanément. <br/> Dans cette thèse, nous introduisons un support pour le prototypage rapide et la composition des langages d'aspects, basé sur des interpréteurs. Nous partons d'un interpréteur d'un sous-ensemble de Java en étudiant et en définissant son extension modulaire afin de supporter la programmation par aspects en se basant sur une sémantique d'aspects partagée. Dans l'interpréteur d'aspects, nous avons implémenté des mécanismes communs aux langages d'aspects en laissant des trous à définir pour implémenter des langages d'aspects concrets. La puissance de cette approche est de permettre d'implémenter directement les langages à partir de leur sémantique. L'approche est validée par l'implémentation d'une version légère d'AspectJ. <br/> Pour appliquer la même approche et la même architecture à Java sans modifier son interpréteur (JVM), nous réutilisons AspectJ pour effectuer une première étape de tissage statique, qui est complétée par une deuxième étape de tissage dynamique, implémentée par une mince couche d'interprétation. C'est un exemple montrant l'intérêt qu'il peut y avoir à concilier interprétation et compilation. Des prototypes pour AspectJ, EAOP, COOL et des langages dédiés simples, valident notre approche. Nous montrons le caractère ouvert de notre implémentation d'AspectJ en décrivant deux extensions: la première permet l'ordonnancement dynamique des aspects, la deuxième propose des sémantiques alternatives pour les points de coupe. Les langages d'aspects implémentés avec notre approche peuvent être facilement composés. En outre, cette composition peut être personnalisée. 2011-10-21 ENG PhD thesis Université de Nantes |
collection |
NDLTD |
language |
ENG |
sources |
NDLTD |
topic |
[INFO:INFO_SE] Computer Science/Software Engineering [INFO:INFO_PL] Computer Science/Programming Languages programmation par aspects interpréteur sémantique prototypage composition langage d'aspects dédié |
spellingShingle |
[INFO:INFO_SE] Computer Science/Software Engineering [INFO:INFO_PL] Computer Science/Programming Languages programmation par aspects interpréteur sémantique prototypage composition langage d'aspects dédié Assaf, Ali Un interpréteur extensible pour le prototypage des langages d'aspects |
description |
L'intérêt de l'utilisation de différents langages d'aspects pour faire face à une variété de préoccupations transverses dans le développement de systèmes logiciels complexes est reconnu. Il faudrait être capable d'utiliser plusieurs de ces langages dans un seul logiciel donné. Cependant, d'une part la phase de développement d'un nouveau langage dédié capturant tous les patrons de programmation du domaine prend beaucoup de temps et, d'autre part, le concepteur doit gérer les interactions avec les autres langages quand ils sont utilisés simultanément. <br/> Dans cette thèse, nous introduisons un support pour le prototypage rapide et la composition des langages d'aspects, basé sur des interpréteurs. Nous partons d'un interpréteur d'un sous-ensemble de Java en étudiant et en définissant son extension modulaire afin de supporter la programmation par aspects en se basant sur une sémantique d'aspects partagée. Dans l'interpréteur d'aspects, nous avons implémenté des mécanismes communs aux langages d'aspects en laissant des trous à définir pour implémenter des langages d'aspects concrets. La puissance de cette approche est de permettre d'implémenter directement les langages à partir de leur sémantique. L'approche est validée par l'implémentation d'une version légère d'AspectJ. <br/> Pour appliquer la même approche et la même architecture à Java sans modifier son interpréteur (JVM), nous réutilisons AspectJ pour effectuer une première étape de tissage statique, qui est complétée par une deuxième étape de tissage dynamique, implémentée par une mince couche d'interprétation. C'est un exemple montrant l'intérêt qu'il peut y avoir à concilier interprétation et compilation. Des prototypes pour AspectJ, EAOP, COOL et des langages dédiés simples, valident notre approche. Nous montrons le caractère ouvert de notre implémentation d'AspectJ en décrivant deux extensions: la première permet l'ordonnancement dynamique des aspects, la deuxième propose des sémantiques alternatives pour les points de coupe. Les langages d'aspects implémentés avec notre approche peuvent être facilement composés. En outre, cette composition peut être personnalisée. |
author |
Assaf, Ali |
author_facet |
Assaf, Ali |
author_sort |
Assaf, Ali |
title |
Un interpréteur extensible pour le prototypage des langages d'aspects |
title_short |
Un interpréteur extensible pour le prototypage des langages d'aspects |
title_full |
Un interpréteur extensible pour le prototypage des langages d'aspects |
title_fullStr |
Un interpréteur extensible pour le prototypage des langages d'aspects |
title_full_unstemmed |
Un interpréteur extensible pour le prototypage des langages d'aspects |
title_sort |
un interpréteur extensible pour le prototypage des langages d'aspects |
publisher |
Université de Nantes |
publishDate |
2011 |
url |
http://tel.archives-ouvertes.fr/tel-00726510 http://tel.archives-ouvertes.fr/docs/00/72/65/10/PDF/Assaf-phd2011.pdf |
work_keys_str_mv |
AT assafali uninterpreteurextensiblepourleprototypagedeslangagesdaspects |
_version_ |
1716604327422853120 |