| |||||||||
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 language code is emitted). If a system supports reflection, the structure is preserved as metadata with the emitted code.
Known platforms supporting reflection are:
More generally, reflection is an activity in computation that reasons about its own computation. The programming paradigm driven by reflection is called reflective programming.