hal@finney.org wrote:
> Let me restate my question without all the baggage. What exactly
> would this coding cortext do? How powerful is it supposed to be?
> How intelligent? The document is not very clear about these points.
Since IMO none of the answers to this question have been very informative, I
decided to take a shot at it.
An AI without a codic cortex would write code the dame way a human
programmer does, using high-level conscious thought for every step of the
process. It would examine the results of its work the way humans do, using
very indirect interfaces and many levels of lossy symbolic transformation
between the visible code and actual machine behavior. It would design
systems by trying to 'visualize' the interactions between components, just
like we do. And so on.
Adding a codic cortex to this AI is simply an evolutionary process of
replacing these techniques with more effective specialized software. Give
the AI a dedicated system for modeling software components, instead of
trying to use a visual system designed for actual physical objects. Add a
facility for converting machine code to software representations, instead of
relying on human-readable source code. Give it a library of code generators
for common tasks, and an extensible architecture so it can write new ones
for itself.
There are also less coding-specific changes that would yield big
improvements in coding ability. Simply allocating a few gigabytes of
high-reliability storage to memorizing the exact behavior of all its
development tools would cut out a lot of wasted time compared to humans.
Allocating more space to short-term memory (so the AI can think about more
than 5-7 distinct 'things' at once) would be another big improvement.
Now, before Eugene jumps on me, allow me to point out that evolutionary
approaches can also be incorporated in such a system. A full-featured codic
cortex should include a pretty elaborate GA system for evolving software
components, as well as (ideally) a relatively automatic facility for
converting specs into fitness functions. Better yet, you could have a
library of different systems, all attempting to evolve useful bits of code
in different ways, and a meta-system which allocates run time between them
based on their track record for various types of problems.
Now, obviously, it would take a huge amount of work to create such an
elaborate piece of software. But it isn't an all-or-nothing proposition -
you can add individual refinements one at a time, and each of them will
contribute somewhat to improved coding ability. At the beginning of the
process you have a very human-like AI that writes human-like source code at
a human-like rate. At the end of it you have an alien mind that uses
specialized facilities to write incomprehensibly complex machine code
several orders of magnitude faster.
Billy Brown
bbrown@transcient.com
http://www.transcient.com
This archive was generated by hypermail 2b29 : Thu Jul 27 2000 - 14:11:34 MDT