defining reflection; Classification; OO.
Thu, 29 Oct 1998 13:18:43 -0800 (PST)
On Wed, 28 Oct 1998, Thomas Mork Farrelly wrote:
> On Tue, 27 Oct 1998, David Manifold wrote:
> > To anyone: There seem to be many different kinds and extents of
> > reflection. Is it possible to clarify and distinguish these?
> I see reflection as the ability to modify self. In a software system,
> reflection must in some way be implemented. Whether or not this reflection
> mechanism should be reflective is an option. If it is, the reflective
> system could redefine itself to not beeing reflective, from where there is
> no way back. This way a non-reflective system is sort of a subset of a
> reflective one. Also is should be possible to spesify a transition from
> one reflective system to another without going breaking the boundaries of
> the initial reflective framework.
But what about a langauge that is written in itself? Does this constitute
a primitive form of reflection, or should it not be called reflection at
What about a language that can modify itself (i.e. is its own macro
language) but perhaps cannot express a compiler for itself?
We need a language that can modify itself, at any level, from the
"source" level, to any "intermediate representations", to the
"low-level compiled" version. Somehow the term 'reflection' seems
inadequate to describe all of that.
> [ Categorisation/classification: ]
> The ability to recognize simularities between different things. The way
> humans do this is by building an overview. Computer need to look at one
> detail at the time, so this is computationally difficult. Withing software
> design you often need to find the essentiallities of components and
> processes in order to build good abstractions. This is effectively the
> same as finding orthogonal abstractions.
> Its the overview part that causes the high complexity when doing automatic
> Mabe I just had to say that I meant "classification".
Pattern matching. It's part of typechecking: figuring out what type
something is. A type is a classification. "Finding orthogonal
abstractions" is what the programmer does when creating a new type.
> > What I meant was: AI is unnecessary, what we need instead is OO done
> > right. Instead of writing applications with functionality presented for
> > the user, they should be many smaller tools presenting their functionality
> > to users and other programs alike.
> Yes, OO should definatly be done right. The way I see it is that there are
> no OO programs, just OO systems. So OO today is incomplete, even if the
> framework is complete, because it builds on a non-OO system that is not
> completely or consistently interfaceble. This problem tends to manifest
> itself through the whole OO system.
Do you mean there are no OO systems, just OO programs? If you meant what
you said, what do you mean there are no OO programs?
David Manifold <firstname.lastname@example.org>