Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!bloom-beacon!spdcc!merk!alliant!linus!rh From: rh@mitre.org (Rich Hilliard) Newsgroups: comp.object Subject: Re: Reflection In Object-Oriented Systems Message-ID: Date: 13 Oct 89 18:20:47 GMT References: <599@ajpo.sei.cmu.edu> Sender: rh@linus.UUCP Organization: Mitre Corporation, Bedford, MA. Lines: 122 In-reply-to: eberard@ajpo.sei.cmu.edu's message of 12 Oct 89 15:00:14 GMT In article <599@ajpo.sei.cmu.edu> eberard@ajpo.sei.cmu.edu (Edward Berard) writes: > I have been researching the concept of "reflection" in object-oriented > systems... > > I am interested in accomplishing the following: > > 1. Developing a definition for reflection which reflects the > _concept_, not a particular _implementation_ of reflection. You want to take a look at the early papers by Brian Smith, particularly his doctoral thesis at MIT, "Reflection and Semantics in a Procedural Language" (1982). Also check out Richard Weyhrauch's "Prolegomena [I love that word!] to a Theory of Mechanized Formal Reasoning" (Artificial Intelligence 13 (1,2) 1980). Both happen to be working in Lisp but that is not particularly important to what they have to say. > A. I would like a fairly informal, intuitive > definition of the concept, preferably not tied to > any particular programming language Here's my intuitive, first order definition: A "reflective system" contains a model of itself which it may access (inspect) and manipulate to change its subsequent behavior. * They call it reflection because that model is in some sense an accurate depiction of itself (like a mirror, right?). * The fact that the system, by manipulating the model, can modify itself requires a "causal connection" between that model and the system. > b. I would also like a pointer to a _generally_ > _accepted_ (if such a thing exists) formal > (mathematical) definition of reflection. I too, would like to know of work on formal definitions, I posted a query to comp.theory to just this effect, yesterday (see below), but there aren't any "generally accepted" definitions. One of the points Smith and Maes and others make is that reflection is "theory-relative" you can obviously only reflect on, inspect, and manipulate things that you can refer to. [My interest in this is that I want to use reflection as an approach to specification. My hypothesis is that if you adopt some form of reflection as a first principle, you can define other descriptive mechanisms in terms of it in such a way that those definitions can be reasoned about. The goal is a readily extensible, thus understandable, specification language whose constructs or features are all readily "provable". But I can talk about this some other time.] > 2. Developing a taxonomy of reflection. Specifically, there > are types of reflection which are conceptually different > from each other, and one, or more, _conceptual_ models for > each of these different types of reflection. Of course, > taxonomy implies nomenclature, definition, and > classification. At a minimum, any such taxonomy will have to consider: 1. What can you reflect on? [already you see distinctions in the literature like computational (procedural, ...) vs. conceptual (declarative) reflection, etc.] 2. When do you reflect? 3. What modifications will the model allow? When can the modifications take effect? PREVIOUS POSTING to comp.theory: Path: linus!rh From: rh@mitre.org (Rich Hilliard) Newsgroups: comp.theory Subject: Formalization of the notion 'reflection' Message-ID: Date: 12 Oct 89 14:13:31 GMT Sender: rh@linus.UUCP Distribution: comp.theory Organization: Mitre Corporation, Bedford, MA. Lines: 33 The notion of reflection, of a system's ability to inspect a model of itself and possibly modify that model to cause a change to its subsequent behavior, goes back to the work of people like Richard Weyhrauch and Brian Smith. Lately, you see "meta-programming" facilities in object-oriented and logic programming languages (e.g., CLOS). I would be interested to know of any work that attempts to formalize some notion of reflective system, what are the essential properties of a system to be reflective, etc. Rich Hilliard The MITRE Corporation - Mail Stop A156 Bedford, MA 01730 (617) 71-7760 Internet: rh@mbunix.mitre.org UUCP: {decvax, philabs}!linus!rh -- Rich Hilliard The MITRE Corporation - Mail Stop A156 Bedford, MA 01730 (617) 271-7760 Internet: rh@mbunix.mitre.org UUCP: {decvax, philabs}!linus!rh