[rec.puzzles] self-reproducing programs

lang@bigburd.UUCP (04/22/87)

I recall some discussion in comp.lang.prolog a while back
(last summer?) about self-reproducing programs
(programs which print their own text when they are run).
Did anybody keep that information, by any chance?
Does anybody have any references to any literature
or any other information about self-reproducing programs?
Many thanks.

----------------------------------------------------------------------------
Francois-Michel Lang			      Daytime phone:  (215) 648-7490
Paoli Research Center, Unisys Corporation        lang@bigburd.PRC.unisys.COM
Dept of Comp. & Info Science, U of PA                     lang@cis.upenn.edu

-- 
----------------------------------------------------------------------------
Francois-Michel Lang			      Daytime phone:  (215) 648-7490
Paoli Research Center, Unisys Corporation        lang@bigburd.PRC.unisys.COM
Dept of Comp. & Info Science, U of PA                     lang@cis.upenn.edu

jaw@ames.UUCP (James A. Woods) (04/24/87)

#  "Sixty minutes of thinking of any kind is bound to
   lead to confusion & unhappiness." -- James Thurber

     A formal discussion may be found in Hartley Rogers' classic text
"Theory of Recursive Functions and Effective Computability", McGraw-Hill,
1967, p. 188-190.  The existence of such programs date back to a theorem
of von Neumann, though the text uses a consequence of the fixpoint
"recursion theorem" of Kleene in proof.

     More leisurely, one might peek at the European Unix User's Group
newsletter (EUUGN vol. 3, no. 4) for the article "Some Self-Reproducing
Programs" by Theo de Ridder.

     Or, for the truly lazy, just compile and run

	p="p=%c%s%c;main(){printf(p,34,p,34);}";main(){printf(p,34,p,34);}

for a demonstration of such introspective behavior.  The 66-byte C version
was the culmination of a lively net.sources discussion in 1984.  However,
some masochists were composing much more elaborate self-reproducing code
in FORTRAN at various institutions during the 1950's.

     -- James A. Woods (ames!jaw)