DPRG
DPRG List  



DPRG: My .signature

Subject: DPRG: My .signature
From: MIKE MCCARTY -- 93789 JMCCARTY at DEVEL.USA.ALCATEL.COM
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?

Yes.

)If so, that's something...

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

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

	begin
		print "begin
			print """begin
					print """""begin
							...
			
					       end """""
			      end"""
		      end"
	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.

Mike
- ----
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