Self-replication
Self-replication is any process by which a thing might make a copy of itself.  Biological cells, given suitable environments, reproduce by cell division. During cell division, DNA is replicated and can be transmitted to offspring during reproduction. Biological viruses can reproduce, but only by commandeering the reproductive machinery of cells through a process of infection. Computer viruses reproduce using the hardware and software already present on computers.
Memes reproduce using the human mind and culture as their reproductive machinery.

# Overview

## Theory
Early research by John von Neumann established that one common form of a replicator has several parts:
- A genome, a compact, usually error-resistant representation of the replicator's stored algorithm.  Biologically, this is DNA.
- A specialized set of mechanisms to copy and repair the genome, using resources gathered by the body.  Biologically, this is something like transcriptase.
- A body, which gathers resources and energy, and interprets a stored algorithm.  Biologically, these are ribosomes.
Exceptions to this pattern are possible.  For example, scientists have successfully constructed RNA that copies itself in an "environment" that is a solution of RNA monomers and transcriptase.  In this case, the body is the genome, and the specialized copy mechanisms are external.
However, the simplest possible case is that only a genome exists.  Without some specification of the self-reproducing steps, a genome-only system is probably better characterized as something like a crystal.

## Classes of self-replication
Recent research  has begun to categorize replicators, often based on the amount of support they require.
- Natural replicators have all or most of their design from nonhuman sources. Such systems include natural life forms.
- Autotrophic replicators can reproduce themselves "in the wild".  They mine their own materials.  It is conjectured that non-biological autotrophic replicators could be designed by humans, and could easily accept specifications for human products.
- Self-reproductive systems are conjectured systems which would produce copies of themselves from industrial feedstocks such as metal bar and wire.
- Self-assembling systems assemble copies of themselves from finished, delivered parts. Simple examples of such systems have been demonstrated at the macro scale.
The design space for machine replicators is very broad.  A comprehensive study to date by Robert Freitas and Ralph Merkle has identified 137 design dimensions grouped into a dozen separate categories, including: (1) Replication Control, (2) Replication Information, (3) Replication Substrate, (4) Replicator Structure, (5) Passive Parts, (6) Active Subunits, (7) Replicator Energetics, (8) Replicator Kinematics, (9) Replication Process, (10) Replicator Performance, (11) Product Structure, and (12) Evolvability.

## A self-reproducing computer program
In computer science a self-reproducing computer program is a computer program that, when executed, outputs its own code.  This is also called a quine.
Here is an example program in the Python programming language:
A more trivial approach is to write a program that will make a copy of any stream of data that it is directed to, and then direct it at itself. In this case the program is treated as both executable code, and as data to be manipulated.
This approach is common in most self-replicating systems, including biological life, and is simpler in that it does not require the program to contain a complete description of itself.
In many programming languages an empty program is still a legal program, which executes without producing errors or any other output. The output is thus the same as the source code, so the program is trivially self-reproducing.

## Self-replicating tiling
In geometry a self-replicating tiling is a tiling pattern in which several congruent tiles may be joined together to form a larger tile that is similar to the original.  This is an aspect of the field of study known as tessellation.  The "sphinx" hexiamond is the only known self-replicating pentagon.  For example, four such concave pentagons can be joined together to make one with twice the dimensions.   Solomon W. Golomb coined the term Rep-tiles for self-replicating tilings.

## Applications
It is a long-term goal of some engineering sciences to achieve a clanking replicator, a material device that can self-replicate.  The usual reason is to achieve a low cost per item while retaining the utility of a manufactured good.  Many authorities say that in the limit, the cost of self-replicating items should approach the cost-per-weight of wood or other biological substances, because self-replication avoids the costs of labor, capital and distribution in conventional manufactured goods.
A fully novel artificial replicator is a reasonable near-term goal.
A NASA study recently placed the complexity of a clanking replicator at approximately that of an Intel's Pentium 4 CPU.  That is, the technology is achievable with a relatively small engineering group in a reasonable commercial time-scale at a reasonable cost.
Given the currently keen interest in biotechnology and the high levels of funding in that field, attempts to exploit the replicative ability of existing cells are timely, and may easily lead to significant insights and advances.
A variation of self replication is of practical relevance in compiler construction, where a similar chicken and egg problem occurs as in natural self replication. A compiler (phenotype) can be applied on the compiler's own source code (genotype) producing the compiler itself. During compiler development, a modified (mutated) source is used to create the next generation of the compiler. This process differs from natural self-replication in that the process is directed by an engineer, not by the subject itself.

# Mechanical self-replication
A major goal in the field of robots is the self-replication of machines. A self-replicating machine is known as a "von Neumann machine," though this term is ambiguous as it also refers to a computer architecture also invented by John von Neumann. Since all robots (at least in modern times) have a fair number of the same features, a self-replicating robot (or possibly a hive of robots) would need to do the following:
- Obtain construction materials
- Manufacture new parts
- Provide a consistent power source
- Program the new members
No such fully capable self-replicator has yet been constructed, though systems capable of much more limited self-assembly under controlled conditions have been demonstrated.
On a nano scale, assemblers might also be designed to self-replicate under their own power. This, in turn, has given rise to the "grey goo" version of Armageddon, as featured in such science fiction novels as Bloom, Prey, and Recursion.
The Foresight Institute has published guidelines for researchers in mechanical self-replication. The guidelines recommend that researchers use several specific techniques for preventing mechanical replicators from getting out of control, such as using a broadcast architecture.
For a detailed article on mechanical reproduction as it relates to the industrial age see mass production.

# Fields involving study of self-replication
Most of the research has occurred in a few areas:
- Biology studies natural replication and replicators, and their interaction.  These can be an important guide to avoid design difficulties in self-replicating machinery.
- Memetics studies ideas and how they propagate in human culture.  Memes require only small amounts of material, and therefore have theoretical similarities to viruses and are often described as viral.
- Nanotechnology or more precisely, molecular nanotechnology is concerned with making nano scale assemblers.  Without self-replication, capital and assembly costs of molecular machines become impossibly large.
- Space resources: NASA has sponsored a number of design studies to develop self-replicating mechanisms to mine space resources.  Most of these designs include computer-controlled machinery that copies itself.
- Computer security: Many computer security problems are caused by self-reproducing computer programs that infect computers  computer worms and computer viruses.
- In parallel computing, it takes a long time to manually load a new program on every node of a large computer cluster or distributed computing system. Automatically loading new programs using mobile agents can save the system administrator a lot of time and give users their results much quicker, as long as they don't get out of control.

# Self-replication in industry

## Space exploration and manufacturing
The goal of self-replication in space systems is to exploit large amounts of matter with a low launch mass.  For example, an autotrophic self-replicating machine could cover a moon or planet with solar cells, and beam the power to the Earth using microwaves.  Once in place, the same machinery that built itself could also produce raw materials or manufactured objects, including transportation systems to ship the products.  Another model of self-replicating machine would copy itself through the galaxy, sending information back.
In general, since these systems are autotrophic, they are the most difficult and complex known replicators.  They are also thought to be the most hazardous, because they do not require any inputs from human beings in order to reproduce.
A classic theoretical study of replicators in space is the 1980 NASA study of autotrophic clanking replicators, edited by Robert Freitas.
Much of the design study was concerned with a simple, flexible chemical system for processing lunar regolith, and the differences between the ratio of elements needed by the replicator, and the ratios available in regolith.  The limiting element was Chlorine, an essential element to process regolith for Aluminium.  Chlorine is very rare in lunar regolith, and a substantially faster rate of reproduction could be assured by importing modest amounts.
The reference design specified small computer-controlled electric carts running on rails.  Each cart could have a simple hand or a small bull-dozer shovel, forming a basic robot.
Power would be provided by a "canopy" of solar cells supported on pillars.  The other machinery could run under the canopy.
A "casting robot" would use a robotic arm with a few sculpting tools to make plaster molds.  Plaster molds are easy to make, and make precise parts with good surface finishes.  The robot would then cast most of the parts either from non-conductive molten rock (basalt) or purified metals.  An electric oven melted the materials.
A speculative, more complex "chip factory" was specified to produce the computer and electronic systems, but the designers also said that it might prove practical to ship the chips from Earth as if they were "vitamins".

## Molecular manufacturing
Nanotechnologists in particular believe that their work will likely fail to reach a state of maturity until human beings design a self-replicating assembler of nanometer dimensions .
These systems are substantially simpler than autotrophic systems, because they are provided with purified feedstocks and energy.  They do not have to reproduce them. This distinction is at the root of some of the controversy about whether molecular manufacturing is possible or not.  Many authorities who find it impossible are clearly citing sources for complex autotrophic self-replicating systems.  Many of the authorities who find it possible are clearly citing sources for much simpler self-assembling systems, which have been demonstrated.  In the meantime, a LEGO-built autonomous robot able to follow a pre-set track and assemble an exact copy of itself, starting from four externally-provided components, was demonstrated experimentally in 2003 .
Merely exploiting the replicative abilities of existing cells is insufficient, because of limitations in the process of protein biosynthesis (also see the listing for RNA).
What is required is the rational design of an entirely novel replicator with a much wider range of synthesis capabilities.
For a discussion of other chemical bases for hypothetical self-replicating systems, see alternative biochemistry.

## Industrial assembly