Reflections

What did I find?

To interpret or evaluate something at one level, we find the appropriate attribute of the thing and appropriate attribute of the level, look the first up in the second, and apply the result of the lookup to the thing and the level.

But what does apply mean?

To interpret something in the frame of reference within which its meaning is understood, do the selection and lookup as above, but instead of applying the result, we lookup it up in the appropriate part of the higher level, and apply that. But what, in turn, does this ``apply'' mean?

Thus leans the tower of meaning ever outward. The search for how meaning is given to the level under scrutiny is infinite. However, to give meaning to a level constructed, implemented and understood by the level concerned is one easy step. This is because meaning, at this level of giving meaning, is in the context only of the provider, and so can be given entirely by the provider, and is valid to that provider.

So now we have two arguments; one to demonstrate that for a level to receive its meaning into itself, it must first receive an infinite number of other levels, and so cannot receive its grounded meaning and yet terminate; and the other to demonstrate that to give meaning to a level does not make an infinitely distant connexion, but an immediately proximal one.

How is it that both of these can be true?

One way to see a solution to this problem is to see that the meta-evaluator is an ordinary, non-reflective program, running on an ordinary computing system, whereas the system within the tower is running on an illusory reflective computer, provided with the illusion of an infinite number of levels of interpretation. The meta-evaluator can realize as many levels as the programs in the tower require (within the constraint of memory space). The apparent infinitude of the tower system is simply generated by a perfectly ordinary piece of compiled Lisp code.

Human reflection

It is natural to try to apply some of the ideas of procedural reflection to our own human thought processes. For example, learning a new manual skill may be seen as installing a new ability into our store of knowledge and reactions. We reify our thought processes, and attempt to reify our intuitions, when producing a rationâle for a decision. This area of reflection touches on very general philosphical topics [Batali 83] [Doyle] [Ryle 49].

As well as the reification and reflection of `natural' mental processes, we perform rapid shifting of information up and down between our internal reasoning activities and external media such as paper, computers, counters, abaci, coins.... We write and read information on external media not only to transfer it between people and for long-term archival, but also to assist our short-term memories in areas in which the brain, with conventional training, is generally weak---performing a long division calculation on paper is an obvious example. The amount of information to remember is not significant on the scale of the brain's overall memory capacity (whatever that may be), and the length of time for which it must be remembered is only seconds or minutes, but for most people the workspace storage for this must be external rather than internal.

However, we can devise and learn methods for performing mental arithmetic, perhaps transforming an algorithm for externally assisted calculation into something easier for a particular individual to work with.

How can we describe such external storage in terms of the reflective devices described in this thesis? We reify things from the conceptual form in which we manipulate them, and reflect them into the state of the storage machine `on its behalf'---or do we interact with the storage in a less mentalistic manner? We read what is on the storage medium, perhaps reifying it in the process, and reflect it back in to our brain's internal storage. Here, the human agent is the interpreter that implements the external device's semantic storage abilities; but it is also the user of the external storage, so it could be seen as a co-towering relationship.

Reflective changes through other artifices

Finding it difficult to influence mood and mental activity directly by thinking about them, people have accumulated a collection of ways of influencing themselves; for example, trying to become more alert and wakeful simply by deciding to do so often proves ineffective; whereas implementing the intention by drinking coffee is more reliable. This is, in one sense, an instance of reflective control of our own mental machinery.

Tower reflective interpretation and other models of computation

Tower-reflective interpretation is just one of many possible models of computation. It does not make computable anything that was not already computable (that is to say, a reflective interpreter cannot do anything beyond what a Turing machine can do) but, intuitively speaking, it seems to bring in fresh possibilities for describing action, language and meaning. What does it introduce that is new, and does it make difficult anything that other systems make easier?

Tower-reflective interpretation takes an unconventional approach to defining the meanings of programs. Whereas other systems offer a purportedly absolute definition of meaning using a substrate that must be taken as representing the framework (world-view) in which the program is taken to have meaning, reflective interpretation aims to bring the framework into the structural field on which the program operates, thus making the definition relative, and at the same time enriching the structural field. Or does it remove the absolute quality of the definition? Is such an absolute quality ever really present within any computational system? Gödel's theorem states that no mathematical system can ever possibly describe itself. Perhaps one of the best ways of comparing the power of descriptive systems is to examine their strengths at the very boundaries (event-horizons?) of self-description. But what is a strength here, and how can we measure it? And how do we examine something that approaches self-description? (On a more philosophical level, we may ask whether this can only be answered absolutely by a wholly self-descriptive agent---and if so, do we qualify ourselves, and by what means and in what frame of reference do we allow ourselves that qualification?)


Summary of reflections

A reasonably efficient reflective evaluation system can emulate an infinite meta-tower of evaluation, in remarkably few lines of Lisp. The most central of these lines may be regarded as a refined form of generalized or parameterized evaluator.

Perhaps somewhat fancifully, parallels may be drawn with non-computational procedural activities, such as deliberation, and learning, in people.

The reflective approach to language definition avoids the conventional route of definition in terms of something outside the the system, after the acknowledgement that no system---neither computational nor mathematical---nor for that matter those based on any other linguistic notation---can describe itself completely. An outside reference---visible to the same observer---must always be present, and we allow such a reference to be arbitrary, rather than from some denotational framework from mathematics, for which in turn the same problem of an outside reference also occurs.


Who hath ascended into heaven, or descended? who hath gathered the wind in his fists? who hath bound the waters in a garment? who hath established all the ends of the earth? what is his name, and what is his son's name, if thou canst tell?

Proverbs 30:4



Submitted, Examined And Accepted: 1991
Contact me