TY - GEN
T1 - Towards Fully Reflective Environments
AU - Chari, Guido
AU - Garbervetsky, Diego
AU - Marr, Stefan
AU - Ducasse, Stéphane
N1 - Publisher Copyright:
© 2015 ACM.
PY - 2015/10/21
Y1 - 2015/10/21
N2 - Modern development environments promote live programming (LP) mechanisms because it enhances the development experience by providing instantaneous feed- back and interaction with live objects. LP is typically supported with advanced reflective techniques within dynamic languages. These languages run on top of Virtual Machines (VMs) that are built in a static manner so that most of their components are bound at compile time. As a consequence, VM developers are forced to work using the traditional edit-compile-run cycle, even when they are designing LP-supporting environments. In this paper we explore the idea of bringing LP techniques to the VM domain for improving their observability, evolution and adaptability at run-time. We define the notion of fully reflective execution environments (EEs), systems that provide reflection not only at the application level but also at the level of the VM. We characterize such systems, propose a design, and present Mate v1, a prototypical implementation. Based on our prototype, we analyze the feasibility and applicability of incorporating reflective capabilities into different parts of EEs. Furthermore, the evaluation demonstrates the opportunities such reflective capabilities provide for unanticipated dynamic adaptation scenarios, benefiting thus, a wider range of users.
AB - Modern development environments promote live programming (LP) mechanisms because it enhances the development experience by providing instantaneous feed- back and interaction with live objects. LP is typically supported with advanced reflective techniques within dynamic languages. These languages run on top of Virtual Machines (VMs) that are built in a static manner so that most of their components are bound at compile time. As a consequence, VM developers are forced to work using the traditional edit-compile-run cycle, even when they are designing LP-supporting environments. In this paper we explore the idea of bringing LP techniques to the VM domain for improving their observability, evolution and adaptability at run-time. We define the notion of fully reflective execution environments (EEs), systems that provide reflection not only at the application level but also at the level of the VM. We characterize such systems, propose a design, and present Mate v1, a prototypical implementation. Based on our prototype, we analyze the feasibility and applicability of incorporating reflective capabilities into different parts of EEs. Furthermore, the evaluation demonstrates the opportunities such reflective capabilities provide for unanticipated dynamic adaptation scenarios, benefiting thus, a wider range of users.
KW - Dynamic Adaptation
KW - Live Programming
KW - Metaobject-Protocols
KW - Reflection
KW - Virtual Machines
UR - https://www.scopus.com/pages/publications/84956684191
U2 - 10.1145/2814228.2814241
DO - 10.1145/2814228.2814241
M3 - Conference proceedings
AN - SCOPUS:84956684191
T3 - Onward! 2015 - Proceedings of the 2015 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, Part of SPLASH 2015
SP - 240
EP - 253
BT - Onward! 2015 - Proceedings of the 2015 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, Part of SPLASH 2015
A2 - Steele, Guy L.
A2 - Murphy, Gail C.
PB - Association for Computing Machinery, Inc
T2 - ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, Onward! 2015 - Part of SPLASH 2015
Y2 - 25 October 2015 through 30 October 2015
ER -