Implémentation homogène de la généricité covariante dans Nit, un langage à objets en héritage multiple

Terrasa, Alexandre (2014). « Implémentation homogène de la généricité covariante dans Nit, un langage à objets en héritage multiple » Mémoire. Montréal (Québec, Canada), Université du Québec à Montréal, Maîtrise en informatique.

Fichier(s) associé(s) à ce document :
[img]
Prévisualisation
PDF
Télécharger (7MB)

Résumé

La généricité est une fonctionnalité importante des langages à objets, spécialement pour l'écriture de bibliothèques et de composants réutilisables. La généricité existe cependant sous plusieurs formes. D'abord par la politique de typage appliquée par le langage : invariante, covariante ou effacée. Mais aussi par l'implémentation qui en est faite : hétérogène, homogène ou effacée. Dans cette étude, nous traitons le sujet de l'implémentation homogène de la généricité dans le langage de programmation NIT. D'après sa spécification, le langage NIT applique une politique de typage covariante. Or, les implémentations existantes sont soit effacées, soit dans un schéma de compilation globale avec représentation hétérogène, soit naïves et inefficaces. La politique covariante autorise une plus grande expressivité dans l'utilisation des types génériques. En contrepartie, elle nécessite un mécanisme de résolution des types génériques ouverts et elle entraîne un problème d'insécurité dans les appels de méthodes utilisant des types génériques redéfinis de manière covariante. L'implémentation homogène permet de partager la même implémentation du corps des méthodes entre les variations génériques d'une même classe. Le coût en mémoire de la généricité est alors réduit au strict minimum. En revanche, cette approche pose les problèmes de représentation des types génériques, d'implémentation du test de sous-typage et d'implémentation du mécanisme de résolution. Nous présentons une solution basée sur l'utilisation de descripteurs de types et de tables de résolution et nous l'implémentons dans un compilateur pour le langage NIT. Nous comparons ses performances avec des moteurs d'exécution pour plusieurs langages grâce à des programmes artificiels et non-réalistes. Les résultats montrent que notre proposition est parmi les plus performantes. Nous utilisons ensuite de vrais programmes NIT pour comparer les performances de notre solution face à d'autres compilateurs NIT suivant d'autres politiques. Les résultats montrent que le sur-coût engendré par une politique covariante est négligeable. Finalement, nous considérons qu'il est possible de fournir une implémentation homogène efficace de la généricité covariante en héritage multiple. Le sur-coût engendré par la covariance est négligeable comparé aux gains en termes de simplicité et d'expressivité du code. ______________________________________________________________________________ MOTS-CLÉS DE L’AUTEUR : généricité covariante, implémentation homogène, langages à objets.

Type: Mémoire accepté
Informations complémentaires: Le mémoire a été numérisé tel que transmis par l'auteur.
Directeur de thèse: Privat, Jean
Mots-clés ou Sujets: Généricité (Informatique), Implémentation (Informatique), Langage orienté objets, Langage Nit
Unité d'appartenance: Faculté des sciences > Département d'informatique
Déposé par: Service des bibliothèques
Date de dépôt: 22 déc. 2014 14:28
Dernière modification: 22 déc. 2014 14:28
Adresse URL : http://archipel.uqam.ca/id/eprint/6541

Statistiques

Voir les statistiques sur cinq ans...