left, of course, for the reader to notice. Yet even if the reader does not
notice it, the mapping is still there, and the Dialogue is still a self-ref.
A Self-Rep by Augmentation
We have been likening self-reps to canons. What, then, would be a fair
analogue to a canon by augmentation? Here is a possibility: consider a
program which contains a dummy loop whose only purpose is to slow up
the program. A parameter might tell how often to repeat the loop. A
self-rep could be made which prints out a copy of itself, but with the
parameter changed, so that when that copy is run, it will run at half the
speed of its parent program; and its "daughter" will in turn run at half
again the speed, and so on ... None of these programs prints itself out
precisely; yet all clearly belong to a single "family".
This is reminiscent of the self-reproduction of living organisms.
Clearly, an individual is never identical to either of its parents; why, then, is
the act of making young called "self-reproduction"? The answer is that
there is a coarse-grained isomorphism between parent and child; it is an
isomorphism which preserves the information about species. Thus, what is
reproduced is the class, rather than the instance. This is also the case in the
recursive picture Gplot, in Chapter V: that is, the mapping between
"magnetic butterflies" of various sizes and shapes is coarse-grained; no two
are identical, but they all belong to a single "species", and the mapping
preserves precisely that fact. In terms of self-replicating programs, this
would correspond to a family of programs, all written in "dialects" of a
single computer language; each one can write itself out, but slightly mod-
ified, so that it comes out in a dialect of its original language.
A Kimian Self-Rep
Perhaps the sneakiest example of a self-rep is the following: instead of
writing a legal expression in the compiler language, you type one of the
compiler's own error messages. When the compiler looks at your "pro-
gram", the first thing it does is get confused, because your "program" is
ungrammatical; hence the compiler prints out an error message. All you
need to do is arrange that the one it prints out will be the one you typed in.
This kind of self-rep, suggested to me by Scott Kim, exploits a different
level of the system from the one you would normally approach. Although it
may seem frivolous, it may have counterparts in complex systems where
self-reps vie against each other for survival, as we shall soon discuss.
What Is the Original?
Besides the question "What constitutes a copy?", there is another funda-
mental philosophical question concerning self-reps. That is the obverse
Self-Ref and Self-Rep 503