Fully Reflective Execution Environments

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...

Descripción completa

Guardado en:
Detalles Bibliográficos
Autores principales: Chari, G., Garbervetsky, D., Marr, S., Ducasse, S.
Formato: INPR
Materias:
Acceso en línea:http://hdl.handle.net/20.500.12110/paper_00985589_v_n_p_Chari
Aporte de:
id todo:paper_00985589_v_n_p_Chari
record_format dspace
spelling todo:paper_00985589_v_n_p_Chari2023-10-03T14:57:00Z Fully Reflective Execution Environments Chari, G. Garbervetsky, D. Marr, S. Ducasse, S. Memory management Semantics Shape Software Task analysis Virtual machining Computer software Job analysis Memory architecture Semantics Execution environments Execution semantics Memory management Programming language semantics Reference architecture Shape Task analysis Virtual machining Virtual machine 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. IEEE INPR info:eu-repo/semantics/openAccess http://creativecommons.org/licenses/by/2.5/ar http://hdl.handle.net/20.500.12110/paper_00985589_v_n_p_Chari
institution Universidad de Buenos Aires
institution_str I-28
repository_str R-134
collection Biblioteca Digital - Facultad de Ciencias Exactas y Naturales (UBA)
topic Memory management
Semantics
Shape
Software
Task analysis
Virtual machining
Computer software
Job analysis
Memory architecture
Semantics
Execution environments
Execution semantics
Memory management
Programming language semantics
Reference architecture
Shape
Task analysis
Virtual machining
Virtual machine
spellingShingle Memory management
Semantics
Shape
Software
Task analysis
Virtual machining
Computer software
Job analysis
Memory architecture
Semantics
Execution environments
Execution semantics
Memory management
Programming language semantics
Reference architecture
Shape
Task analysis
Virtual machining
Virtual machine
Chari, G.
Garbervetsky, D.
Marr, S.
Ducasse, S.
Fully Reflective Execution Environments
topic_facet Memory management
Semantics
Shape
Software
Task analysis
Virtual machining
Computer software
Job analysis
Memory architecture
Semantics
Execution environments
Execution semantics
Memory management
Programming language semantics
Reference architecture
Shape
Task analysis
Virtual machining
Virtual machine
description 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. IEEE
format INPR
author Chari, G.
Garbervetsky, D.
Marr, S.
Ducasse, S.
author_facet Chari, G.
Garbervetsky, D.
Marr, S.
Ducasse, S.
author_sort Chari, G.
title Fully Reflective Execution Environments
title_short Fully Reflective Execution Environments
title_full Fully Reflective Execution Environments
title_fullStr Fully Reflective Execution Environments
title_full_unstemmed Fully Reflective Execution Environments
title_sort fully reflective execution environments
url http://hdl.handle.net/20.500.12110/paper_00985589_v_n_p_Chari
work_keys_str_mv AT charig fullyreflectiveexecutionenvironments
AT garbervetskyd fullyreflectiveexecutionenvironments
AT marrs fullyreflectiveexecutionenvironments
AT ducasses fullyreflectiveexecutionenvironments
_version_ 1807320968375304192