Tierra is a computer simulation developed by ecologist Thomas S. Ray in the early 1990s in which computer programs compete for central processing unit (CPU) time and access to main memory. At present, the commonly accepted definition of life does not consider any computer program to be alive, however, Tierra is a frequently cited example of an artificial life model; in the metaphor of the Tierra, the evolvable computer programs can be considered as digital 'organisms' which compete for energy (CPU time) and resources (main memory). In this context, the computer programs in Tierra could be considered evolvable and can mutate, self-replicate and recombine.
Life on Earth is the product of evolution by natural selection operating in the medium of carbon chemistry. However, in theory, the process of evolution is neither limited to occuring on the Earth, nor in carbon chemistry. Just as it may occur on other planets, it may also operate in other media, such as the medium of digital computation. And just as evolution on other planets is not a model of life on Earth, nor is natural evolution in the digital medium.
The Tierra C source code creates a virtual computer and its Darwinian operating system, whose architecture has been designed in such a way that the executable machine codes are evolvable. This means that the machine code can be mutated (by flipping bits at random) or recombined (by swapping segments of code between algorithms), and the resulting code remains functional enough of the time for natural (or presumably artificial) selection to be able to improve the code over time.
Along with the C source code which generates the virtual computer, we provide several programs written in the assembler code of the virtual computer. Some of these were written by a human and do nothing more than make copies of themselves in the RAM of the virtual computer. The others evolved from the first, and are included to illustrate the power of natural selection.
The operating system of the virtual computer provides memory management and timesharing services. It also provides control for a variety of factors that affect the course of evolution: three kinds of mutation rates, disturbances, the allocation of CPU time to each creature, the size of the soup, etc. In addition, the operating system provides a very elaborate observational system that keeps a record of births and deaths, sequences the code of every creature, and maintains a genebank of successful genomes. The operating system also provides facilities for automating the ecological analysis, that is, for recording the kinds of interactions taking place between creatures.
This system results in the production of synthetic organisms based on a computer metaphor of organic life in which CPU time is the ``energy'' resource and memory is the ``material'' resource. Memory is organized into informational patterns that exploit CPU time for self-replication. Mutation generates new forms, and evolution proceeds by natural selection as different genotypes compete for CPU time and memory space.
Diverse ecological communities have emerged. These digital communities have been used to experimentally examine ecological and evolutionary processes: e.g., competitive exclusion and coexistence, host/parasite density dependent population regulation, the effect of parasites in enhancing community diversity, evolutionary arms race, punctuated equilibrium, and the role of chance and historical factors in evolution. This evolution in a bottle may prove to be a valuable tool for the study of evolution and ecology.
taken from: http://life.ou.edu/tierra/