Springer, Lecture Notes in Computer Science, p. 20-40, 2008
DOI: 10.1007/978-3-540-92273-5_2
Full text: Download
Software systems nowadays are becoming increasingly complex and vulnerable to all sorts of failures and attacks. There is a rising need for robust self-repairing systems able to restore full functionality in the face of internal and external perturbations, including those that affect their own code base. However, it is difficult to achieve code self-repair with conventional programming models. We propose and demonstrate a solution to this problem based on self-replicating programs in an artificial chemistry. In this model, execution proceeds by chemical reactions that modify virtual molecules carrying code and data. Self-repair is achieved by what we call autocatalytic quines: programs that permanently reproduce their own code base. The concentration of instructions reflects the health of the system, and is kept stable by the instructions themselves. We show how the chemistry of such programs enables them to withstand arbitrary amounts of random code and data deletion, without affecting the results of their computations.