ABSTRACT

B The program can modify itself – adding more abstractions, variables, etc. at runtime.

T STAGE towards computational reflectionrequires that the programs be able to modify themselves. The ability for a program to examine and modify itself is called reflection. This is an even more powerful proposition than introspection and, as such, of all the languages that support introspection, only a small subset of them support full reflection. Ruby is an example of a language supporting full reflection; Python and JavaScript support it with restrictions; Java and C# support only a small set of reflective operations.