Uncommon Descent Serving The Intelligent Design Community

Writing Computer Programs by Random Mutation and Natural Selection

Categories
Intelligent Design
Share
Facebook
Twitter/X
LinkedIn
Flipboard
Print
Email

The first computer program every student writes is called a “Hello World” program. It is a simple program that prints “Hello World!” on the screen when executed. In the course of writing this bit of code one learns about using the text editor, and compiling, linking and executing a program in a given programming environment.

Here’s a Hello World program in the C programming language:


#include <stdio.h>

int main(void)
{
printf(“Hello World!\n”);
return(0);
}

This program includes 66 non-white-space text characters. The C language uses almost every character on the keyboard, but to be generous in my calculations I’ll only assume that we need the 26 lower-case alpha characters. How many 66-character combinations are there? The answer is 26 raised to the 66th power, or 26^66. That’s roughly 2.4 x 10^93 (10^93 is 1 followed by 93 zeros).

To get a feel for this number, it is estimated that there are about 10^80 subatomic particles in the known universe, so there are as many 66-character combinations in our example as there are subatomic particles in 10 trillion universes. There are about 4 x 10^17 seconds in the history of the universe, assuming that the universe is 13 billion years old.

What is the probability of arriving at our Hello World program by random mutation and natural selection? How many simpler precursors are functional, what gaps must be crossed to arrive at those islands of function, and how many simultaneous random changes must be made to cross those gaps? How many random variants of these 66 characters will compile? How many will link and execute at all, or execute without fatal errors? Assuming that our program has already been written, what is the chance of evolving it into another, more complex program that will compile, link, execute and produce meaningful output?

I can’t answer these questions, but this example should give you a feel for the unfathomable probabilistic hurdles that must be overcome to produce the simplest of all computer programs by Darwinian mechanisms.

Now one might ask, What is the chance of producing, by random mutation and natural selection, the digital computer program that is the DNA molecule, not to mention the protein synthesis machinery and information-processing mechanism, all of which is mutually interdependent for function and survival?

The only thing that baffles me is the fact that Darwinists are baffled by the fact that most people don’t buy their blind-watchmaker storytelling.

Comments

Gil, Panda's Thumb has responded to you with their own thread:

http://www.pandasthumb.org/archives/2006/06/evolution_of_co_2.html

Best regards,
apollo230

The response is empty. Pim Van Meurs cites a program (written by intelligent agents I presume) that can create a "Hello World" program from some unspecified genetic algorithm. The way this is accomplished is not disclosed and if it were disclosed I'm sure we'd find the program is cheating by sneaking information in via the filter which ranks the "fitness" of the intermediate outputs. This is nothing more than trial and error. Finding solutions by trial and error is nothing new. Building upon partial successes is an obvious extension of the process. This process of trial and error, and building upon partial successes, is likely as old as humanity itself. Trial and error and the choosing of partially successful intermediate solutions requires purpose and direction. These are supplied by the programmers of the so-called genetic algorithms. -ds apollo230
June 11, 2006
June
06
Jun
11
11
2006
07:28 AM
7
07
28
AM
PDT
-- quote: Now one might ask, What is the chance of producing, by random mutation and natural selection, the digital computer program that is the DNA molecule, not to mention the protein synthesis machinery and information-processing mechanism, all of which is mutually interdependent for function and survival? -------- It seems even more striking to ask what are the chances of random mutations & natural selection to not just build the DNA with its biochemical properties, but build it so that this DNA then gathers and arranges large clusters of other molecules in just such a clever way that these clusters then end up moving together still other molecules from around the Earth, from the air down to the depths under the mountains, arranging them into computers and writing programs for them, from 'Hello World' through the rest of computer software, along with arranging yet other molecules into the rest of science and technology. According to the neo-Darwinian dogma, they claim they can 'scientifically' encircle and delimit, somehow, a particular very, very tiny space-time & matter-energy speck of this whole vast process (which, as all agree, is a manifestly an intelligent process), then declare the movements of this particular speck as the sole seat of all of the "intelligence" of the entire process, while the rest of the process is merely operating by a 'dumb luck'. Further, this tiny intelligent speck, the sole seat of all of the intelligence, as luck would have it, happens to contain (presumably, at its very center) the neo-Darwinians themselves. Yeah, sure.nightlight
June 11, 2006
June
06
Jun
11
11
2006
01:27 AM
1
01
27
AM
PDT
SCheesman makes an interesting point, but the thrust of my post is to reveal how quickly combinatorics create insurmountable probabilistic barriers, even in simple systems. Actually, the problem is much worse than I describe, because before you can even write a Hello World program you need the computing hardware, the programming language and its conventions, the editor, libraries of precompiled subroutines, header files, and the compiler and linker. Living things not only need DNA code, but a whole lot of tightly functionally integrated machinery to make use of it.GilDodgen
June 10, 2006
June
06
Jun
10
10
2006
08:07 PM
8
08
07
PM
PDT
SCheesman -- I think that the issue is that the cell has to solve BOTH problems, not to mention creating the underlying machine to execute the problem.johnnyb
June 10, 2006
June
06
Jun
10
10
2006
06:58 PM
6
06
58
PM
PDT
The only thing that baffles me is the fact that Darwinists are baffled by the fact that most people don't buy their blind-watchmaker storytelling. There is a great thread here (http://www.freerepublic.com/focus/f-news/1300661/posts) FreeRepublic concerning a 2003 speech by Michael Crichton. It includes:
There is no such thing as consensus science. If it's consensus, it isn't science. If it's science, it isn't consensus. Period. In addition, let me remind you that the track record of the consensus is nothing to be proud of. Let's review a few cases. In past centuries, the greatest killer of women was fever following childbirth . One woman in six died of this fever. In 1795, Alexander Gordon of Aberdeen suggested that the fevers were infectious processes, and he was able to cure them. The consensus said no. In 1843, Oliver Wendell Holmes claimed puerperal fever was contagious, and presented compellng evidence. The consensus said no. In 1849, Semmelweiss demonstrated that sanitary techniques virtually eliminated puerperal fever in hospitals under his management. The consensus said he was a Jew, ignored him, and dismissed him from his post. There was in fact no agreement on puerperal fever until the start of the twentieth century. Thus the consensus took one hundred and twenty five years to arrive at the right conclusion despite the efforts of the prominent "skeptics" around the world, skeptics who were demeaned and ignored. And despite the constant ongoing deaths of women.
tribune7
June 10, 2006
June
06
Jun
10
10
2006
06:18 PM
6
06
18
PM
PDT
I completely agree with the main thrust of the argument here, as a someone who writes scientific software for a living. However, for the purpose of the argument, you might want to consider re-casting into terms of the available operators and arguments (e.g. "printf()", "return" "int" etc.), not the letters which spell them out. For instance, the "return" operator is one among "N" possible operators in the "C" language, so its appearance on the last line, as opposed to any other operator, would be about 1/N, assuming all operators were equally probable. To this you'd have to factor in the odds of it NOT appearing anywhere else, which would cause premature termination. The chance of spelling "return" out of the available letters seems to me a completely different problem. Perhaps it would be better to consider the compiled code instead, once the C representations of the arguments have been replaced by their more fundamental units, or even looking at the binary representation of the executable. In any case, any programmer relying on Darwinian processes to write better code would experience rapid, unnatural de-selection.SCheesman
June 10, 2006
June
06
Jun
10
10
2006
06:17 PM
6
06
17
PM
PDT
1 2 3

Leave a Reply