Virtualization Support for Application Runtime Specialization and Extension

Guillermo Polito 1, 2
2 RMOD - Analyses and Languages Constructs for Object-Oriented Application Evolution
Inria Lille - Nord Europe, CRIStAL - Centre de Recherche en Informatique, Signal et Automatique de Lille (CRIStAL) - UMR 9189
Résumé : Un environnement d’exécution est l’ensemble des éléments logiciels qui représentent une application pendant son exécution. Les environnements d’exécution doivent être adaptables à différents contextes. Les progrès des technologies de l’information, tant au niveau logiciel qu’au niveau matériel, rendent ces adaptations nécessaires. Par exemple, nous pouvons envisager d’étendre un language de programmation pour améliorer la productivité des developpeurs. Aussi, nous pouvons envisager de réduire la consommation memoire des applications de manière transparente afin de les adapter à certaines contraintes d’exécution e.g., des réseaux lents ou de la mémoire limités. Nous proposons Espell, une infrastructure pour la virtualisation d’environnement d’execution de langages orienté-objets haut-niveau. Espell fournit une infrastructure généraliste pour le contrôle et la manipulation d’environnements d’exécution pour différentes situations. Une représentation de ’premier-ordre’ de l’environnement d’exécution orienté objet fournit une interface haut-niveau qui permet la manipulation de ces environnements. Un hyperviseur est client de cette représentation de ’premier-ordre’ et le manipule soit directement, soit en y exécutant des expressions arbitraires. Nous montrons au travers de notre prototype que cet infrastructure supporte le bootstrapping (i.e., l’amorçage ou initialisation circulaire) des languages et le tailoring (i.e., la construction sur-mesure ou ’taille’) d’environnement d’exécution. En utilisant l’amorçage nous initialisons un language orienté-objet haut-niveau qui est auto-décrit. Un langage amorcé profite des ses propres abstractions se montrant donc plus simple à étendre. La taille d’environnements d’exécution est une technique qui génère une application spécialisé en extrayant seulement le code utilisé pendant l’exécution d’un programme. Une application taillée inclut seulement les classes et méthodes qu’elle nécessite, et évite que des librairies et des frameworks externes surchargent inutilement la base de code.
Type de document :
Thèse
Programming Languages [cs.PL]. Universite des Sciences et Technologies de Lille, 2015. English
Liste complète des métadonnées

https://hal.inria.fr/tel-01251173
Contributeur : Lse Lse <>
Soumis le : jeudi 7 janvier 2016 - 10:45:15
Dernière modification le : mardi 3 juillet 2018 - 11:26:04
Document(s) archivé(s) le : vendredi 8 avril 2016 - 13:05:15

Identifiants

  • HAL Id : tel-01251173, version 1

Citation

Guillermo Polito. Virtualization Support for Application Runtime Specialization and Extension. Programming Languages [cs.PL]. Universite des Sciences et Technologies de Lille, 2015. English. 〈tel-01251173〉

Partager

Métriques

Consultations de la notice

489

Téléchargements de fichiers

212