End-User Abstractions for Meta-Control: Reifying the Reflectogram

Autor: Nick Papoulias, Marcus Denker, Luc Fabresse, Stéphane Ducasse
Přispěvatelé: Université Pierre et Marie Curie - Paris 6 (UPMC), Unité de modélisation mathématique et informatique des systèmes complexes [Bondy] (UMMISCO), Institut de Recherche pour le Développement (IRD)-Université Pierre et Marie Curie - Paris 6 (UPMC)-Université de Yaoundé I-Institut de la francophonie pour l'informatique-Université Cheikh Anta Diop [Dakar, Sénégal] (UCAD)-Université Gaston Bergé (Saint-Louis, Sénégal)-Université Cadi Ayyad [Marrakech] (UCA), Analyses and Languages Constructs for Object-Oriented Application Evolution (RMOD), Inria Lille - Nord Europe, Institut National de Recherche en Informatique et en Automatique (Inria)-Institut National de Recherche en Informatique et en Automatique (Inria)-Centre de Recherche en Informatique, Signal et Automatique de Lille - UMR 9189 (CRIStAL), Centrale Lille-Université de Lille-Centre National de la Recherche Scientifique (CNRS)-Centrale Lille-Université de Lille-Centre National de la Recherche Scientifique (CNRS), Centre for Digital Systems (CERI SN - IMT Nord Europe), Ecole nationale supérieure Mines-Télécom Lille Douai (IMT Nord Europe), Institut Mines-Télécom [Paris] (IMT)-Institut Mines-Télécom [Paris] (IMT), PHARO, Université Cadi Ayyad [Marrakech] (UCA)-Université de Yaoundé I-Université Gaston Bergé (Saint-Louis, Sénégal)-Université Cheikh Anta Diop [Dakar, Sénégal] (UCAD)-Institut de la francophonie pour l'informatique-Université Pierre et Marie Curie - Paris 6 (UPMC), Centre for Digital Systems (CERI SN), Ecole nationale supérieure Mines-Télécom Lille Douai (IMT Lille Douai)
Jazyk: angličtina
Rok vydání: 2017
Předmět:
Zdroj: Science of Computer Programming
Science of Computer Programming, 2017, 140, pp.2-16. ⟨10.1016/j.scico.2016.12.002⟩
Science of Computer Programming, Elsevier, 2017, 140, pp.2-16. ⟨10.1016/j.scico.2016.12.002⟩
ISSN: 0167-6423
DOI: 10.1016/j.scico.2016.12.002⟩
Popis: International audience; Reflective facilities in OO languages are used both for implementing language extensions (such as AOP frameworks) and for supporting new programming tools and methodologies (such as object-centric debugging and message-based profiling). Yet controlling the runtime behavior of these reflective facilities introduces several challenges, such as computational overhead, the possibility of meta-recursion and an unclean separation of concerns between base and meta-level. In this paper we present five dimensions of meta-level control from related literature that try to remedy these problems. These dimensions are namely: temporal and spatial control, placement control, level control and identity control. We then discuss how these dimensions interact with language semantics in class-based OO languages in terms of: scoping, inheritance and first-class entities. We argue that the reification of the descriptive notion of reflectogram can unify the control of meta-level execution in all these five dimensions while expressing properly the underlying language semantics. We present an extended model for the reification of the reflectogram based on our additional analysis and validate our approach through a new prototype implementation that relies on byte-code instrumentation. Finally, we illustrate our approach through a case study on runtime tracing.
Databáze: OpenAIRE