Reflection in an object-oriented system allows the structure of objects and classes to be queried at run-time, thus enabling
“meta-object” programming such as program debugging. Remote Reflection allows objects in one address space to reflect upon
objects in a different address space. Used with a debugger, remote reflection makes available the full power of object-oriented
reflection even when the object examined is within a malfunctioning or terminated system. We implemented remote reflection
as an extension to an interpreter to create a very effective debugger for Jalapeño, a Java Virtual Machine written in Java.