An Introduction to Reflection-Oriented Programming

Jonathan M. Sobel and Daniel P. Friedman (Indiana University)

HTML

PostScript

Adobe PDF

Past accounts of reflection have tended to emphasize interpreters and/or runtime access to some particular representation of the state of a program's interpretation. This paper presents a computational account of reflection, drawing a distinction between the meta-level manipulation of data or control in a computation and the mere availability of meta-circular implementation details. In particular, this paper does not presume the existence of program source code at runtime.

The paper introduces a style of programming that relies on reflective language features but is similar in form to object-oriented programming. A translation-based implementation of these new language forms is explained, and several examples of their use are provided. The examples include the measurement of computational expense, the introduction of first-class continuations, and the modification of the semantics of expressed values, all in terms of reflection-oriented programming.

jsobel@cs.indiana.edu
dfried@indiana.edu


Click here to get Aladdin Ghostscript 5.10.

Click here to get Adobe Acrobat Reader 3.01.



Home

Overview

Table of Contents

Author Index

Credits



Last Update: 06/28/98
Web Author: Matthew Hurlbut
hurlbut@jerry.cs.uiuc.edu