The Avida program was supposed to replicate Darwinian evolution in software. Not only was there hope of proving Darwinism at last but it might lead to self-evolving computer programs.
The simulation demonstrated a reality for any kind of computer programming: The program code must follow the syntax and semantic rules of the programming language. If the program code is modified randomly, there is no reason to think the resulting program will still follow those rules.
When a program fails because of a syntax error, as in this example, the program does not run again — ever. A program that fails because of a semantic error usually produces spurious results and dies just as dead.
Neo-Darwinian evolution theory holds that an animal undergoes an undirected mutation and survives to reproduce, with its descendants undergoing other undirected mutations over thousands of reproduction cycles. Given enough such successive mutations, a new feature or function “evolves.” The Avida simulation applies this approach to programming.
As InforMutation shows, however, one small mutation in a software program is very often fatal to the software…
Working with InforMutation exposes the reasons why Avida could not demonstrate neo-Darwinian evolution of “learning” software. Rather, as a product of careful design, the Avida simulation showed the the fundamental elements of intelligent design: Purpose, Plan, Engineering, and Foresight. Only with these elements could randomly-mutated programs survive and run repeatedly so as to accumulate mutations.Richard W. Stevens, “Why Software Cannot Just Evolve” at Mind Matters News
In other words, to the extent that Avida works, it was designed to work. And the programmer subtly — perhaps unaware — builds in rescues.
We’ve heard a phrase for that: intelligent design
You may also wish to read: Random evolution doesn’t produce algorithmic functions in animals (Richard W. Stevens)