Quine (computing)

quinequinesself-reproducing programcopy of itselfidentical copies of themselvesQuining
A quine is a computer program which takes no input and produces a copy of its own source code as its only output.wikipedia
86 Related Articles

Kleene's recursion theorem

A corollarydiagonally non-recursiveKleene Recursion Equations
Quines are possible in any Turing complete programming language, as a direct consequence of Kleene's recursion theorem.
The recursion theorems can be applied to construct fixed points of certain operations on computable functions, to generate quines, and to construct functions defined via recursive definitions.

Indirect self-reference

indirect type of self-referenceQuining
The name "quine" was coined by Douglas Hofstadter, in his popular science book Gödel, Escher, Bach, in honor of philosopher Willard Van Orman Quine (1908–2000), who made an extensive study of indirect self-reference, and in particular for the following paradox-producing expression, known as Quine's paradox:
Suppose we define the quine of a phrase to be the quotation of the phrase followed by the phrase itself.

Willard Van Orman Quine

QuineW. V. O. QuineW. V. Quine
The name "quine" was coined by Douglas Hofstadter, in his popular science book Gödel, Escher, Bach, in honor of philosopher Willard Van Orman Quine (1908–2000), who made an extensive study of indirect self-reference, and in particular for the following paradox-producing expression, known as Quine's paradox:

Quine's paradox

The name "quine" was coined by Douglas Hofstadter, in his popular science book Gödel, Escher, Bach, in honor of philosopher Willard Van Orman Quine (1908–2000), who made an extensive study of indirect self-reference, and in particular for the following paradox-producing expression, known as Quine's paradox:

Von Neumann universal constructor

universal constructorself-replicating machinesconstruction
The idea of self-reproducing automata came from the dawn of computing, if not before.

Affero General Public License

AGPLAGPLv3Affero GPL
The "download source" requirement of the Affero General Public License is based on the idea of a quine.
Around late February 2002, Kuhn suggested, based on the idea of a quine (a program that prints its own source code), that GPLv2 be supplemented with a section 2(d) that would require derivative works to maintain a "download source" feature that would provide complete and corresponding source code.

International Obfuscated C Code Contest

IOCCCObfuscated C Code ContestObfuscated C Contest
Such an empty program, submitted as "the world's smallest self reproducing program", once won the "worst abuse of the rules" prize in the International Obfuscated C Code Contest.
An example is the world's shortest self-reproducing program.

Self-replication

self-replicatingreplicationreplicate
In computer science a quine is a self-reproducing computer program that, when executed, outputs its own code.

Gödel, Escher, Bach

Gödel, Escher, Bach: An Eternal Golden BraidGodel, Escher, Bach: An Eternal Golden BraidGodel, Escher, Bach
The name "quine" was coined by Douglas Hofstadter, in his popular science book Gödel, Escher, Bach, in honor of philosopher Willard Van Orman Quine (1908–2000), who made an extensive study of indirect self-reference, and in particular for the following paradox-producing expression, known as Quine's paradox:
One is Quining, a term Hofstadter invented in homage to Willard Van Orman Quine, referring to programs that produce their own source code.

Computer program

programprogramscomputer programs
A quine is a computer program which takes no input and produces a copy of its own source code as its only output.

Source code

codesourcesource file
A quine is a computer program which takes no input and produces a copy of its own source code as its only output. In general, the method used to create a quine in any programming language is to have, within the program, two pieces: (a) code used to do the actual printing and (b) data that represents the textual form of the code.

Computability theory

recursion theorycomputablecomputability
The standard terms for these programs in the computability theory and computer science literature are "self-replicating programs", "self-reproducing programs", and "self-copying programs".

Computer science

computer scientistcomputer sciencescomputer scientists
The standard terms for these programs in the computability theory and computer science literature are "self-replicating programs", "self-reproducing programs", and "self-copying programs".

Fixed point (mathematics)

fixed pointfixed pointsfixpoint
A quine is a fixed point of an execution environment, when the execution environment is viewed as a function transforming programs into their outputs.

Function (mathematics)

functionfunctionsmathematical function
A quine is a fixed point of an execution environment, when the execution environment is viewed as a function transforming programs into their outputs.

Turing completeness

Turing-completeTuring completeuniversal
Quines are possible in any Turing complete programming language, as a direct consequence of Kleene's recursion theorem.

Douglas Hofstadter

Douglas R. HofstadterHofstadterHofstadter, Douglas
The name "quine" was coined by Douglas Hofstadter, in his popular science book Gödel, Escher, Bach, in honor of philosopher Willard Van Orman Quine (1908–2000), who made an extensive study of indirect self-reference, and in particular for the following paradox-producing expression, known as Quine's paradox:

John von Neumann

von NeumannJ. von NeumannNeumann, John von
John von Neumann theorized about them in the 1940s.

Atlas Autocode

Bratley first became interested in self-reproducing programs after seeing the first known such program written in Atlas Autocode at Edinburgh in the 1960s by the University of Edinburgh lecturer and researcher Hamish Dewar.

University of Edinburgh

Edinburgh UniversityEdinburghThe University of Edinburgh
Bratley first became interested in self-reproducing programs after seeing the first known such program written in Atlas Autocode at Edinburgh in the 1960s by the University of Edinburgh lecturer and researcher Hamish Dewar.

Data

statistical datascientific datadatum
In general, the method used to create a quine in any programming language is to have, within the program, two pieces: (a) code used to do the actual printing and (b) data that represents the textual form of the code.

Java (programming language)

JavaJava programming languageJava language
The following Java code demonstrates the basic structure of a quine.

Ruby (programming language)

RubyRuby programming languageRuby Application Archive
For example, this Ruby quine: