An introduction to object-based reflective concurrent computation

In psychological or human terms, reflection usually means that one thinks about one's own ideas, actions, and past experiences. Since we are dealing with computation systems, we should be more precise about what is meant by "reflection." In a computational system, reflection is the process of reasoning about and acting upon the computational system itself. Reasoning and acting involve accessing and changing part or the whole of the system. The whole motivation of computational reflection is to make the object-level computation perform effectively by dyn~micaUy modifying the internal organization of the computational system.