A Generic Reification Technique for Object-Oriented Reflective Languages

  • Authors:
  • Rémi Douence;Mario Südholt

  • Affiliations:
  • École des Mines de Nantes, Département Informatique, 44307 Nantes cedex 3, France. douence@emn.fr;École des Mines de Nantes, Département Informatique, 44307 Nantes cedex 3, France. sudholt@emn.fr

  • Venue:
  • Higher-Order and Symbolic Computation
  • Year:
  • 2001

Quantified Score

Hi-index 0.02

Visualization

Abstract

Computational reflection is gaining interest in practical applications as witnessed by the use of reflection in the Java programming environment and recent work on reflective middleware. Reflective systems offer many different reflection programming interfaces, the so-called Meta-Object Protocols (MOPs). Their design is subject to a number of constraints relating to, among others, expressive power, efficiency and security properties. Since these constraints are different from one application to another, it would be desirable to easily provide specially-tailored MOPs.In this paper, we present a generic reification technique based on program transformation. It enables the selective reification of arbitrary parts of object-oriented meta-circular interpreters. The reification process is of fine granularity: individual objects of the run-time system can be reified independently. Furthermore, the program transformation can be applied to different interpreter definitions. Each resulting reflective implementation provides a different MOP directly derived from the original interpreter definition.