REFLECTION IN OBJECT-ORIENTED PROGRAMMING

Abstract
Recently, the notion of having programming languages and computational systems that allow their programs to reason about themselves and reflect on their computations has attracted the attention of many researchers. These systems, called "Reflective Systems", promise many advantages over conventional systems. For example, dynamic program stepping, execution tracing, and code analysis and modification at run time are few of the reflective operations that can be easily implemented in reflective systems. Reflectivity of programming languages allows the language users to extend the language to support other programming paradigms. Reflective systems can also play an important role in programming solutions for non-conventional domains. Artificial intelligence applications, particularly learning systems, benefit from the reflectivity of a programming language. A learning system must be able to modify itself at run time to incorporate its learned behaviors. The goal of this article is to define reflection and its components, introduce the appropriate terminology, and present briefly some reflective applications in object-oriented systems.

This publication has 0 references indexed in Scilit: