Once messages (InfoStrings) have arrived in a cell's Received Message Store, they may be read by the host code (using str_switch, adr, mov_ic and related instructions), and messages of the same type as the genome of the host cell may even be treated as executable code, as described in Section 4.3.7. This allows for genetic information to be exchanged between organisms in a manner analogous to the direct exchange mechanisms employed by lower biological organisms such as viruses and bacteria.
If the foreign code is detrimental to the performance of the host cell, the host may be expected to evolve measures to prevent the foreign code from being executed. This can be achieved in a number of different ways, such as by using a different type number for its own genome (which may come about by mutation), by removing the foreign code from the Received Message Store (using the str_remove instruction), or by not receiving the foreign code in the first place. If, however, the foreign code is beneficial to the host, then it may be expected that the host will evolve to copy this code into its Nucleus Working Memory so that it will become incorporated into the host genome in future generations. The system is even flexible enough to allow for the possibility of the evolution of sexual reproduction (see Section 6.7 for details of a hand-written sexual organism).