Adaptability and Encapsulation in Dynamically-Typed Languages: Taming Reflection and Extension Methods

Camille Teruel 1
1 RMOD - Analyses and Languages Constructs for Object-Oriented Application Evolution
LIFL - Laboratoire d'Informatique Fondamentale de Lille, Inria Lille - Nord Europe
Résumé : Les utilisateurs s’attendent à ce que les logiciels d’aujourd’hui soient à la fois con- tinuellement disponibles et mis-à-jour à la volée. L’introduction de nouvelles fonc- tionnalités et l’intégration de correctifs ne doit pas perturber la bonne marche d’une application. Les développeurs bénéficient aussi de la modification dynamique des logiciels: par exemple, ils peuvent adapter le code à de nouvelle situations non anticipées ou bien ils peuvent exécuter des analyses dynamiques pour obtenir du retour sur le comportement d’applications en cours d’exécution, et ce, à des fins de monitorage, de déboggage et d’optimisation. Les languages de programmation et leurs environments d’exécution doivent donc fournir aux développeurs des mécan- ismes qui améliorent l’adaptabilité logicielle. Dans le même temps, l’augmentation de la taille et de la complexité des logi- ciels requièrent des applications faites de nombreux composants développés par différents groupes. Dans ce contexte, soit tous les composant sont supposés dignes de confiance ou bien chaque composant doit être convenablement protégé des autres. Par exemple, un greffon logiciel ne doit pas être capable de manipuler les structures internes ou bien de divulguer les données privée de son application hôte de manière non contrôlée. De la même manière, une bibliothèque malveillante ne doit pas pouvoir corrompre ses clients ou interférer dans leurs opérations. Les lan- guages de programmation doivent donc fournir aux développeurs des mécanismes qui améliorent l’isolation logicielle, tels que l’encapsulation et des politiques de contrôle d’accès sur mesure. Le besoin de supporter des adaptations dynamiques qui peuvent change quasi- ment chaque aspect d’une application d’un côté, et le besoin d’avoir des com- posants convenablement confinés d’un autre côté, poussent la conception des lan- guages de programmation dans deux directions opposées: soit plus de flexibilité, soit plus de contrôle. Cette dissertation étudie cette tension dans le contexte des languages orientée-objet dynamiquement typés via deux mécanismes qui promeu- vent l’adaptabilité logicielle: la réflexion et les méthodes d’extension. Pour cha- cun de ces mécanismes, nous démontrons leur utilité, leurs effets néfastes sur l’encapsulation et proposons des solutions qui conservent leurs forces tout en main- tenant l’encapsulation.
Type de document :
Thèse
Programming Languages [cs.PL]. Université des Sciences et Technologies de Lille, 2016. English
Liste complète des métadonnées

Littérature citée [45 références]  Voir  Masquer  Télécharger

https://tel.archives-ouvertes.fr/tel-01290364
Contributeur : Lse Lse <>
Soumis le : vendredi 18 mars 2016 - 08:43:12
Dernière modification le : jeudi 21 février 2019 - 10:52:50
Document(s) archivé(s) le : lundi 20 juin 2016 - 01:17:26

Identifiants

  • HAL Id : tel-01290364, version 1

Collections

Citation

Camille Teruel. Adaptability and Encapsulation in Dynamically-Typed Languages: Taming Reflection and Extension Methods. Programming Languages [cs.PL]. Université des Sciences et Technologies de Lille, 2016. English. 〈tel-01290364〉

Partager

Métriques

Consultations de la notice

286

Téléchargements de fichiers

288