Reflection: a method or means to let a system maintain information about itself (meta-information), and to use such to alter its behavior, to change, adapt; something acting upon itself. This is higher-order behavior than strict imperative models. More concretely, reflection is also an ability (for users) to modify software (even system software) of the underlying system during runtime, without leaving that system. Most programs written today are not reflective. With non-reflective systems, if one modifies (edits) any source code, one must recompile, and then restart it, thus leaving the system. With a reflective system, one can modify code (even kernel code), recompile, and replace the running system code as the system runs, with no restarting, rebooting, or often even leaving the editor. This allows and promotes more dynamic, fluid, productive work style. Such runtime modifiability is similar to what an
extensible operat- Category ID : 60971