Supervisor: Dr John Hallam
Specifically, computer programs are the self-replicators in my model, and large numbers of them compete with each other for the memory and CPU time required to make copies of themselves. The programs are subject to mutations, so that, over time, mutants which are better at making copies of themselves become more numerous in the population of programs, and a process of evolution is observed.
The computer programs are represented as bit strings which get translated at runtime into executable instructions. Promoters can be produced which bind to the bit string at specific sites, and translation of the code begins from these sites. There are also repressors which can prevent translation from occuring. Programs can control the production of these promoters and repressors, so that a complex regulatory network can emerge. Additionally, instructions are included in the language to enable a program to dynamically create multiple processes, so that evolution can explore the possibilities of parallelism (my analogy of multicellularity). Processes within a parallel program can send promoters and repressors to their neighbouring processes.
Each program has a position on a 2D grid and can move about in this environment. Energy tokens are periodically distributed in the environment, and programs must regularly collect these to exchange for a slice of CPU time to run their instructions. Communication with other agents in the environment is possible, so that it is possible for social (or antisocial!) interactions to emerge.
The main purpose of COSMOS is to provide a tool for studying questions about evolution (including questions relating to the evolution of multicellular organisms (and of complex structures in general), the relationship between development and evolution, the relationship between individual lifespans and evolution, and the evolution of the genetic code itself). The more such tools we have to supplement what may be learned from biological evolution on Earth, the more we will be able to refine our understanding of evolutionary genetics and the dynamics of evolutionary systems in general.
COSMOS is currently in the implementation phase. I hope to have an initial version up and running by the end of November.