next up previous contents
Next: Performance Up: Expressiveness Previous: Support for objects   Contents

Reflection

This is a very important feature of Maude. Intuitively, it means that Maude programs can be metarepresented as data, which can then be manipulated and transformed by appropriate functions. It also means that there is a systematic causal connection between Maude modules themselves and their metarepresentations, in the sense that we can either first perform a computation in a module and then metarepresent its result, or, equivalently, we can first metarepresent the module and its initial state and then perform the entire computation at the metalevel. Finally, the metarepresentation process can itself be iterated giving rise to a very useful reflective tower. Thanks to Maude's logical semantics (more on this in Section 1.2), all this is not just some kind of ``glorified hacking,'' but a precise form of logical reflection with a well-defined semantics (see Chapter 11 and [20,21]). There are many important applications of reflection. Let us mention just three:


next up previous contents
Next: Performance Up: Expressiveness Previous: Support for objects   Contents
The Maude Team