What is "reflection"

Reflection, or reflection in Portuguese is the process by which a program can perform introspection. This introspection usually involves the ability to observe and modify their own structure and behavior at runtime. From a theoretical point of view the reflection relates to the fact that the instructions of a program are stored as data. The distinction between programme code and data is a question of how information is handled. Hence programs can treat their own code as data and observe or modify them.