自产生程式（），它以哲学家奎恩命名，指的是输出结果为程式自身源码的程式。能够直接读取自己源码、读入使用者输入或空白的程式一般都不视为自产生程式。
起源.这种编程思想在计算机刚刚兴起的时候就已经出现了。Paul Bratley发表的文章"Computer Recreations: Self-Reproducing Automata"也对此进行了讨论。而已知最早的这类程式在1960年代于爱丁堡大学出现，由Hamish Dewar以编写：
原理.我们先定义一