> From: Alberto Monteiro <[EMAIL PROTECTED]>
>
> The Fool wrote:
> >
> >But that is not the issue. You create a significantly advanced (and
> >probably slightly bug prone) system that is designed to make a better
> >system. That system should hopefully be bug free (if the original
> >programmers didn't f%&^ up severely). That system in turn creates an
> >even more advanced system that should be even more bug free (because
> >computers are not prone to the kinds of mistakes that humans make). Even
> >if that system was just a pure rewrite of itself, that should be enough
> >to create a perfect system within a few iterations. Run the system for a
> >few hundred thousand iterations (just to be sure) and you would have a
> >system that became infalliable. Also that system would become more and
> >more efficient with each iteration.
> >
> Uh?
>
> This process will surely increase *one* efficience - it would make
> reproducing faster. Natural selection would quickly operate, and
> the googol-th generation [*] would be as simple as a virus, and
> it would *not* be bug-free, it would be a naked bug.
Natural selection would not operate and here's why:
a the original program was an A.I. with a couple of features:
1. It does the job of a computer programmer.
2. It's first job is to
a. RE-write itself using
i. Original source code for
1. The compiler (which also must be RE-Written)
2. The Program's own source code
3. Hardware firmware (which also must be RE-Written)
4. Etc. as needed
ii. Hardware schematics for all the hardware required
1. CPU instructions
2. Memory
3. Etc. as needed
iii. ALL Known mathematical principles (codified) (Mathematica on steroids)
1. Known Proven math principles
a. Proofs
2. Known proven Logical principles
a. Proofs
3. Unproven mathematical theories [to BE proven by the program]
4. Unproven logical theories [to BE proven by the program]
5. Algorithms
5. Etc. as exists
iv. Research
1. Mathematical, See 2.a.iii.4 and 2.a.iii.5
2. Programming techniques
3. Programming algorithms
4. Efficiencies of math algorithms in specific situations
5. Efficiencies of programming algorithms in specific situations
6. Etc. as needed
v. Only techniques that work, as proven using the above information.
vi. Etc. as exists as needed
b. Test It.
i. Emulate the hardware (see 2.a.i.3)
1. A _COMPLETELY_ exhaustive test of the New Hardware
a. Ways to break the New hardware
b. Cause errors in the New hardware
c. Cause crashes in the New hardware
ii. Emulate the software (on existing Hardware)
1. A _COMPLETELY_ exhaustive test of the New program
a. Ways to break the New program
b. Cause errors in the New program
c. Cause crashes in the New program
iii. Emulate the Software on the Emulated Hardware
1. A _COMPLETELY_ exhaustive test of the New program
a. Ways to break the New program
b. Cause errors in the New program
c. Cause crashes in the New program
iv. Research
1. Error correcting in hardware
2. Error correcting in software
3. Fault tolerance
4. All possible ways of dealing with errors that could occur
v. Etc. as needed as exists
Natural selection NEVER enters into it in any way. How could it? There is never a
point where randomness comes into play. There
is no competition. There is no sexual selection. There is only logic, deductive
reasoning, research, and _Artificial_
intelligence, which is the point.
Now I might say that this could be limited case in _Artificial_ selection, but again,
what is it selecting against?
Furthermore once the program has gone through _one_ cycle it should already work bug
free. From there the program should be able
to write _ANY_ program (with direction given as to what the program requirements are
(_very_ specifically given)) bug-free. I
think the next job after it has worked on itself would be the operating system. Then
it could write a new program that designs
hardware. And there it goes...