DPRG List  

DPRG: My .signature

Subject: DPRG: My .signature
Date: Tue Aug 24 09:40:39 CDT 1999

)Hi Mike,
)So what you are saying, is that the output of the compiled program is
)the same thing which you compiled?


)If so, that's something...

Well, even if not it's *something*. I suppose you mean it is something

I recall many years ago (like 20 or so) my wife was studying virology
in graduate school. She was studying how viruses reproduce, and was
having a hard time. She came to me for help. Well, I'm not a biologist,
so I could hardly understand *any* of it. But she'd explain the
meanings of words, and gradually I came to understand how it works.

I had just a few months before come across the concept of the
"self-reproducing" program which displays its own source. At one time
(late 1950's) some guy proved a theorem that a self-constructing
machine could not be built, because the machine would have to have the
instructions for constructing a machine in it, which would have to have
the instructions in them, so that there would be an "infinite regress".
In effect, a program for such would look like this

		print "begin
			print """begin
					print """""begin
					       end """""

This program is "self-reproducing" in a certain theoretical sense, but
it never terminates, being infinite in length (and unconstructible in
the real world). Anyway, when I heard that some wiseacre or other had
actually written a program which could reproduce itself, I got very
interested. It took me a couple of hours to figure out how to do it, and
another couple of hours actually to write a program (in Pascal) which
*did* it.

When I finally understood how viruses work, how they reproduce, I was
amazed to see that my program used the very same technique. I became
very excited. It was like, as Newton said, "Thinking God's thoughts
after Him." Anyway, I explained it to my wife, and have retained an
interest in such matters. Goedel's theorem is similar in a way.

I came across this C language version, and put it in my sig, just a few
years ago. It's *much* easier in C than in Pascal.

This subject is, of course, relevant to roboticists, should they ever
desire to construct sel-reproducing robots.

If anyone likes, I'll describe the technique and explain the program.

- ----
char *p="char *p=%c%s%c;main(){printf(p,34,p,34);}";main(){printf(p,34,p,34);}
I do not speak for Alcatel. <- They make me say that.
This message made from 100% recycled bits.


More information about the DPRG mailing list