next up previous contents
Next: Preliminary Issues Up: Design Details of the Previous: Design Details of the

Cosmos Design Philosophy

The basic approach employed in Cosmos to model an evolutionary process is the same as in Tierra. However, many of the design details are different, reflecting the slightly different goals motivating the two systems. One of the original goals of Cosmos was that it should be able to support self-replicating programs with some of the features possessed by simple cellular biological organisms, such as mechanisms for communication and response to environmental stimuli (which may potentially promote coevolution between organisms), and mechanisms for regulating the genome (which may promote the evolution of differentiated programs).

Before continuing, clarification should be given of some of the terms that will be used when describing Cosmos. Biological terms will often be used, as these tend to be somewhat more concise than the associated terms relating to computer architectures. While these biological terms suggest the analogy that was in mind when Cosmos was designed, the analogies are certainly not exact; many simplifications and modifications obviously have to be made when designing such a system. With this is mind, the meanings attached to some biological terms in the present context are listed in Table 4.1.

Table 4.1: Definitions of Biologically-Related Terms Used for Describing Cosmos.
Term Meaning in context of Cosmos
Genotype The instructions that make up a program (the host code within a cell).
Genome The structure within a program which stores the program's instructions. In the current context, the terms genome and genotype are used more or less interchangeably.
Phenotype The action (behaviour) of a program as its instructions are being executed.
Organism A single program, which may be unicellular or multicellular.
Cell A single process in an organism. This term encompasses the host code and any foreign code that may be present, together with associated working memory, buffers, registers and other structures.
Unicellular An organism containing a single cell/process (in other words, a serial program).
Multicellular An organism containing multiple cells/processes (in other words, a parallel program).

Perhaps the most significant difference between Cosmos and Tierra is that programs in Cosmos cannot directly read the code of their neighbours. Cells can only communicate with each other (within or between organisms) by message passing (described in Sections 4.3.7 and 4.6.1). Apart from this intercellular communication, each cell only has read, write and execute access within its own cell boundary.

Among the other important differences between Cosmos and Tierra are a number of features in Cosmos intended to encourage the evolution of diversity and complexity4.2 in the competing programs, rather than just the optimisation of their ancestral algorithms. The most important of these are the energy token allocation system, described in Sections 4.3.5 and 4.5.2, and the regulator system of promoters and repressors which governs the execution of a program's code, described in Section 4.3.3. The regulator system is closely linked to the programming language in which the self-replicators are written, introduced in Section 4.4. Further differences between Cosmos and Tierra are discussed in Section 4.10.

next up previous contents
Next: Preliminary Issues Up: Design Details of the Previous: Design Details of the
Tim Taylor