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

Abstract : 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.
Type de document :
Article dans une revue
Science of Computer Programming, Elsevier, 2017
Liste complète des métadonnées

https://hal.inria.fr/hal-01424787
Contributeur : Papoulias Nikolaos <>
Soumis le : lundi 2 janvier 2017 - 20:34:20
Dernière modification le : lundi 24 septembre 2018 - 17:34:18
Document(s) archivé(s) le : mardi 4 avril 2017 - 01:40:54

Fichier

reflectogram-scp-submit (1).pd...
Fichiers produits par l'(les) auteur(s)

Identifiants

  • HAL Id : hal-01424787, version 1

Citation

Nick Papoulias, Marcus Denker, Stéphane Ducasse, Luc Fabresse. End-User Abstractions for Meta-Control: Reifying the Reflectogram. Science of Computer Programming, Elsevier, 2017. 〈hal-01424787〉

Partager

Métriques

Consultations de la notice

508

Téléchargements de fichiers

170