What is a ``reflective'' system?

BRIAN SPILSBURY zhivago@iglou.com
Sun, 11 May 1997 03:11:48 -0400 (EDT)


> Fare and others have been promoting the idea
> of a reflective system.  I am familiar with this term
> in several contexts and I'd like a little clarification.
> 
> Does reflective mean anything more than the usual
> Lisp ability to get a hold of environments, code and
> continuations?

I'd call that introspection.
 
> Does reflective extend to the 3Lisp concept of an
> infinite reflective tower?

imho, yes, reflection is the ability to redefine the system from
within itself. To have something able to change what it means by changing
that it is reflecting (at the meta level).

PCL is a good example, it has a bootstrap stage in which it redefines
CL such that CL is now CLOS, after that point PCL goes on to use
code that is now valid in the new system which it couldn't before
since it is now running under CLOS.

If I was perverse enough I could for example add operators to lisp
and change its syntax in a similar way so that

x = 10 + 20;

was perfectly valid code.

Brian