Virtual Machines for More Flexible Software
Document type :
Compte-rendu et recension critique d'ouvrage
DOI :
Title :
Fully Reflective Execution Environments
Virtual Machines for More Flexible Software
Virtual Machines for More Flexible Software
Author(s) :
Chari, Guido [Auteur]
Laboratory on Foundations and Tools for Software Engineering [Buenos Aires] [LAFHIS]
Garbervetsky, Diego [Auteur]
Laboratory on Foundations and Tools for Software Engineering [Buenos Aires] [LAFHIS]
Marr, Stefan [Auteur]
Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Ducasse, Stephane [Auteur]
Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Laboratory on Foundations and Tools for Software Engineering [Buenos Aires] [LAFHIS]
Garbervetsky, Diego [Auteur]
Laboratory on Foundations and Tools for Software Engineering [Buenos Aires] [LAFHIS]
Marr, Stefan [Auteur]
Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Ducasse, Stephane [Auteur]
Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Journal title :
IEEE Transactions on Software Engineering
Pages :
1 - 20
Publisher :
Institute of Electrical and Electronics Engineers
Publication date :
2018-05-01
ISSN :
0098-5589
HAL domain(s) :
Informatique [cs]/Langage de programmation [cs.PL]
English abstract : [en]
VMs are complex pieces of software that implement programming language semantics in an efficient, portable, and secure way. Unfortunately, mainstream VMs provide applications with few mechanisms to alter execution semantics ...
Show more >VMs are complex pieces of software that implement programming language semantics in an efficient, portable, and secure way. Unfortunately, mainstream VMs provide applications with few mechanisms to alter execution semantics or memory management at run time. We argue that this limits the evolvability and maintainability of running systems for both, the application domain, e.g., to support unforeseen requirements, and the VM domain, e.g., to modify the organization of objects in memory. This work explores the idea of incorporating reflective capabilities into the VM domain and analyzes its impact in the context of software adaptation tasks. We characterize the notion of a fully reflective VM, a kind of VM that provides means for its own observability and modifiability at run time. This enables programming languages to adapt the underlying VM to changing requirements. We propose a reference architecture for such VMs and present TruffleMATE as a prototype for this architecture. We evaluate the mechanisms TruffleMATE provides to deal with unanticipated dynamic adaptation scenarios for security, optimization, and profiling aspects. In contrast to existing alternatives, we observe that TruffleMATE is able to handle all scenarios, using less than 50 lines of code for each, and without interfering with the application's logic.Show less >
Show more >VMs are complex pieces of software that implement programming language semantics in an efficient, portable, and secure way. Unfortunately, mainstream VMs provide applications with few mechanisms to alter execution semantics or memory management at run time. We argue that this limits the evolvability and maintainability of running systems for both, the application domain, e.g., to support unforeseen requirements, and the VM domain, e.g., to modify the organization of objects in memory. This work explores the idea of incorporating reflective capabilities into the VM domain and analyzes its impact in the context of software adaptation tasks. We characterize the notion of a fully reflective VM, a kind of VM that provides means for its own observability and modifiability at run time. This enables programming languages to adapt the underlying VM to changing requirements. We propose a reference architecture for such VMs and present TruffleMATE as a prototype for this architecture. We evaluate the mechanisms TruffleMATE provides to deal with unanticipated dynamic adaptation scenarios for security, optimization, and profiling aspects. In contrast to existing alternatives, we observe that TruffleMATE is able to handle all scenarios, using less than 50 lines of code for each, and without interfering with the application's logic.Show less >
Language :
Anglais
Popular science :
Non
Collections :
Source :
Files
- https://hal.inria.fr/hal-01728111/document
- Open access
- Access the document
- https://hal.inria.fr/hal-01728111/document
- Open access
- Access the document
- https://hal.inria.fr/hal-01728111/document
- Open access
- Access the document
- document
- Open access
- Access the document
- 08307099.pdf
- Open access
- Access the document
- 08307099.pdf
- Open access
- Access the document
- document
- Open access
- Access the document
- 08307099.pdf
- Open access
- Access the document