In computer science reflection is the ability of a program to examine and possibly modify its high level structure at runtime. It is most common in just in time compiled languages.

When program source code is compiled information about the structure of the program is normally lost as lower level code (typically assembly code) is emitted. If a system supports reflection the structure is preserved as meta data with the emitted code.

Platforms Supporting Reflection