Implementing Modular Class-based Reuse ...
Type de document :
Communication dans un congrès avec actes
DOI :
Titre :
Implementing Modular Class-based Reuse Mechanisms on Top of a Single Inheritance VM
Auteur(s) :
Tesone, Pablo [Auteur]
Centre for Digital Systems [CERI SN - IMT Nord Europe]
Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Polito, Guillermo [Auteur]
Centre de Recherche en Informatique, Signal et Automatique de Lille - UMR 9189 [CRIStAL]
Fabresse, Luc [Auteur]
Centre for Digital Systems [CERI SN - IMT Nord Europe]
Bouraqadi, Noury [Auteur]
Centre for Digital Systems [CERI SN - IMT Nord Europe]
Ducasse, Stephane [Auteur]
Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Centre for Digital Systems [CERI SN - IMT Nord Europe]
Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Polito, Guillermo [Auteur]
Centre de Recherche en Informatique, Signal et Automatique de Lille - UMR 9189 [CRIStAL]
Fabresse, Luc [Auteur]
Centre for Digital Systems [CERI SN - IMT Nord Europe]
Bouraqadi, Noury [Auteur]
Centre for Digital Systems [CERI SN - IMT Nord Europe]
Ducasse, Stephane [Auteur]
Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Titre de la manifestation scientifique :
SAC 2018:- The 33rd ACM/SIGAPP Symposium On Applied Computing
Organisateur(s) de la manifestation scientifique :
ACM/SIGAPP
Ville :
Pau
Pays :
France
Date de début de la manifestation scientifique :
2018-04-09
Titre de la revue :
SAC 2018 Symposium on Applied Computing
Éditeur :
ACM New York, NY, USA
Date de publication :
2018
Mot(s)-clé(s) en anglais :
code reuse
composable language features
performance
composable language features
performance
Discipline(s) HAL :
Informatique [cs]/Langage de programmation [cs.PL]
Résumé en anglais : [en]
Code reuse is a good strategy to avoid code duplication and speed up software development. Existing object-oriented programming languages propose different ways of combining existing and new code such as e.g., single ...
Lire la suite >Code reuse is a good strategy to avoid code duplication and speed up software development. Existing object-oriented programming languages propose different ways of combining existing and new code such as e.g., single inheritance, multiple inheritance, Traits or Mixins. All these mechanisms present advantages and disadvantages and there are situations that require the use of one over the other. To avoid the complexity of implementing a virtual machine (VM), many of these mechanisms are often implemented on top of an existing high-performance VM, originally meant to run a single inheritance object-oriented language. These implementations require thus a mapping between the programming model they propose and the execution model provided by the VM. Moreover, reuse mechanisms are not usually composable, nor it is easy to implement new ones for a given language. In this paper, we propose a modular meta-level runtime architecture to implement and combine different code reuse mechanisms. This architecture supports dynamic combination of several mechanisms without affecting runtime performance in a single inheritance object-oriented VM. It includes moreover a reflective Meta-Object Protocol to query and modify classes using the programming logical model instead of the underlying low-level runtime model. Thanks to this architecture, we implemented Stateful Traits, Mixins, CLOS multiple inheritance, CLOS Standard Method Combinations and Beta prefixing in a modular and composable way.Lire moins >
Lire la suite >Code reuse is a good strategy to avoid code duplication and speed up software development. Existing object-oriented programming languages propose different ways of combining existing and new code such as e.g., single inheritance, multiple inheritance, Traits or Mixins. All these mechanisms present advantages and disadvantages and there are situations that require the use of one over the other. To avoid the complexity of implementing a virtual machine (VM), many of these mechanisms are often implemented on top of an existing high-performance VM, originally meant to run a single inheritance object-oriented language. These implementations require thus a mapping between the programming model they propose and the execution model provided by the VM. Moreover, reuse mechanisms are not usually composable, nor it is easy to implement new ones for a given language. In this paper, we propose a modular meta-level runtime architecture to implement and combine different code reuse mechanisms. This architecture supports dynamic combination of several mechanisms without affecting runtime performance in a single inheritance object-oriented VM. It includes moreover a reflective Meta-Object Protocol to query and modify classes using the programming logical model instead of the underlying low-level runtime model. Thanks to this architecture, we implemented Stateful Traits, Mixins, CLOS multiple inheritance, CLOS Standard Method Combinations and Beta prefixing in a modular and composable way.Lire moins >
Langue :
Anglais
Comité de lecture :
Oui
Audience :
Internationale
Vulgarisation :
Non
Collections :
Source :
Fichiers
- https://hal.archives-ouvertes.fr/hal-01812612/document
- Accès libre
- Accéder au document
- https://hal.archives-ouvertes.fr/hal-01812612/document
- Accès libre
- Accéder au document
- https://hal.archives-ouvertes.fr/hal-01812612/document
- Accès libre
- Accéder au document
- document
- Accès libre
- Accéder au document
- main.pdf
- Accès libre
- Accéder au document
- main.pdf
- Accès libre
- Accéder au document