1 / 14

Concepts and Experiments in Computational Reflection

Concepts and Experiments in Computational Reflection. Pattie Maes. Computational Reflection. Activity performed by a computational system when doing computations about its own computation. Reflective system. Incorporates structures representing (aspects of) itself.

Download Presentation

Concepts and Experiments in Computational Reflection

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Concepts and Experiments in Computational Reflection Pattie Maes

  2. Computational Reflection • Activity performed by a computational system when doing computations about its own computation.

  3. Reflective system • Incorporates structures representing (aspects of) itself. • The self representation is causally connected to the aspects of the system it represents: • The system has always an accurate representation of itself. • The status and computation of the system are always in compliance with this representation.

  4. Use of reflection • Keep performance statistics • Debugging purposes • Stepping and tracing facilities • Interfacing • Reasoning about control • Self-optimisation • Self-modification • Self-activation

  5. Reflective architecture • Provides tools for handling reflective computations explicitly. • Access to data representing the system itself. • Guarantee the causal connection between these data and the aspects of the system.

  6. Existing reflective architectures • 3-LISP and BROWN: • Introduces the concepts of a reflective function that specifies computation about the currently ongoing computation. • FOL and META-PROLOG: • Uses Meta-theories about the deduction of other theories. • TEIRESIAS and SOAR: • Incorporates Meta-rules that specify computation about ongoing computation.

  7. Existing reflective architectures (cont.) • These languages use a meta-circular interpreter: • A representation of the interpretation of the language which is also used to run the language. • A procedural reflection; a representation of the system in terms of the programs that implements the system. • Procedural reflection has to be designed to provide a good vasis to reason about the system, and it has to be effective and efficient (often contradicting requirements).

  8. Declarative reflection • Self-representation merely consisting of statements about the system. • Does not have to be a complete procedural representation. • Causal connection requirement is more difficult to realise. Interpreter must translate declarative representations into the interpretation-process.

  9. Concepts • The concepts of reflection fits most naturally in the spirit of object orientation. • An important issue is abstraction, an object is free to realise its role in the overall system in whatever way it wants to. • An object not only performs computation about its domain, but also about how it can realize this computation.

  10. Motivations for reflection in OOL • A reflective architecture can be used to create local specialiezd interpreters. • Reflective information can be used to provide documentation, history and explantation facilities. • Keeps track of relation among representations. • Encapsulates value of the data-item. • Guards its status and behaviour.

  11. SMALLTALK-72 and FLAVORS • Ad-hoc reflective facilities in OOL. • Two problems: • Only a fixed set of reflective facilities are supported. • Mixed object-level and reflection-level, which may lead to obscurity. • SMALLTALK-80 introduces meta-classes, but classes still mix information about domain and implementation.

  12. Reflective architecture in OOL • Architecture introduced in KRS, 3-KRS. • Every object has a meta-object. • Structures in an object exclusively represents information about the domain entity that is represented by the object. • The structures in the meta-object contains all the reflective information that is availbale about the object.

  13. Reflective architecture in OOL (cont.) • Self-representation of an OO system is uniform. Every entity is an object, so every aspect of the system can be reflected upon. • 3-KRS proveds a complete self-representation. • Self-representation in a 3-KRS system is consistent. • Self-representation can be modified at run-time, and this has an impact on the run-time computation.

  14. Examples of use of 3-KRS • Tracing • One can temporarily associate a meta-object with a program such that during its evalutation various tracing or stepping utilities are performed. • Local deviating interpreter • Multiple inheritance (not supported by 3-KRS) can be realized by a specialized meta-object.

More Related