Thèse soutenue

Une approche modulaire de l'initialisation d'objets pour Pharo

FR  |  
EN
Auteur / Autrice : Marco Naddeo
Direction : Stéphane DucasseViviana Bono
Type : Thèse de doctorat
Discipline(s) : Informatique et applications
Date : Soutenance le 24/11/2017
Etablissement(s) : Lille 1 en cotutelle avec Università di Torino (Turin, Italie)
Ecole(s) doctorale(s) : École doctorale Sciences pour l'ingénieur (Lille)
Partenaire(s) de recherche : Laboratoire : Centre de Recherche en Informatique, Signal et Automatique de Lille

Résumé

FR  |  
EN

La modularité du code favorise la réutilisation. Les concepteurs de langages de programmation se sont principalement consacrés à la modularité des méthodes. À l’inverse, la modularité du code d’initialisation a souvent été négligé. Le code d’initialisation de beaucoup de langages orientés objets à classe est laborieux dans plusieurs cas: par exemple, quand quelques champs (i.e., variables d’instances) ont plusieurs options d’initialisation (e.g., un rectangle peut être initialisé avec des coordonnées Cartésiennes ou polaires), ont une initialisation optionnelle (e.g., un rectangle peut être positionné à une coordonnée fournie ou à l’origine (0,0) si aucune coordonnée n’est fournie) ou héritent d’une initialisation de la super classe (e.g., un rectangle coloré doit redéfinir tous les constructeurs de sa super classe pour ajouter la notion de couleur). Dans de telles circonstances, le nombre de constructeurs augmente exponentiellement avec les options d’initialisation car l’approche d’initialisation manque de modularité.Nous proposons une approche d’initialisation novatrice s’inspirant du langage prototypique Magda. Cette approche est basée sur des modules d’initialisation composables plus petits que les constructeurs classiques. De plus, le nombre de ces modules augmente linéairement avec les options d’initialisation. Nous appliquons cette approche à Pharo, un langage orienté objets dynamiquement typé inspiré de Smalltalk. L’adaptation à Pharo de l’approche d’initialisation de Magda implique la résolution de nouveaux défis issus du passage d’un contexte statiquement typé à un contexte dynamique.