It's likely they will come up with some novel configurations
   that we didn't anticipate, but nothing that's not within the
   limits of its programmed potential.

   self-modifying code is a strange area of programming, and the
   vast majority of artificial intelligence doesn't involve
   self-modifying code because of its unpredictability. In fact,
   most programming language do not allow for self-modifying code
   directly, although any turing complete machine (which isn't that
   difficult to accomplish) could _possibly_ do it.

   Instead, the trends seem to be object oriented primarily, even
   within AI. The "purest code" is pure functional programming, but
   the few languages that are pure functional programming - like
   Haskell... don't have the speed people want, so they usually
   return to C++ for closeness-to-the-nature-of-the-computer-itself
   or to Python, which is easy to use and maintain and comprehend.

   My point is, the ranges of modification are set by the
   programmers and the specs of the design ahead of time. Anything
   that goes beyond the programmed limits of capacity are likely
   errors.