| |||||||||
Self-replication is the process by which some things make copies of themselves. Biological cells, given suitable environments, reproduce by cell division. 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 as their reproductive machinery.
It is a long-term goal of some engineering sciences to achieve self-replication in a material device. 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 placed the complexity of a clanking replicator at approximately that of a 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.
Most of the research has occurred in a few areas:
and therefore have theoretical similarities to viruses.
Nanotechnologists in particular believe that their work will likely fail to reach a state of maturity until human beings design a self-replicative assembler of nanometer dimensions.
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 carbon chauvinism.
The goal of self-replication in space systems is to exploit large amounts of matter with a low launch mass. For example, a 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.
One of the classic theoretical studies of mechanical replicators in space is the 1980 NASA of clanking replicators. 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 can make precise parts with good surface finishes. The robot would then cast most of the parts either from nonconductive 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."
Much of the design study was concerned with a simple, flexible chemical system for processing the ores, and the differences between the ratio of elements needed by the replicator, and the ratios available in lunar regolith. The limiting element was Chlorine, an essential element to process regolith for Aluminum. Chlorine is very rare in lunar regolith.
In computer science a self-replicating 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='a=%s;print a%%`a`';print a%`a`
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 its own self. 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.