Reflection for Statically Typed Languages

@inproceedings{Guimares1998ReflectionFS,
  title={Reflection for Statically Typed Languages},
  author={Jos{\'e} de Oliveira Guimar{\~a}es},
  booktitle={ECOOP},
  year={1998}
}
An object-oriented language that permits changing the behavior of a class or of a single object is said to support computational reflection. Existing reflective facilities in object-oriented languages are either complex, type unsafe, or have a large performance penalty. We propose a simple, easy-to-understand, and statically typed model that captures much of the functionalities of other reflective facilities. It brings the power of reflection to the world of type safe and efficient languages.