Been thinking about it, and this is my current thought:
Instead of sysvars and memory locations written to and from, have everything be a command, with current state information stored in a hidden Finite State Machine.
Sort of like how OpenGL works.
Sysvar commands would be either read or write. Read commands return information and place it on the stack. Write commands take information from the stack and directly push it into action.
Basically commands would either be input, output, or manipulation.
Alot of sysvars could be condensed or entirely modified. Shots, for instance, could be segregated into nrgShot, bodyShot, etc., removing the need for keeping track of -1, -6, etc. The parameter pased could then be the shot strength, what shootval is currently being used for for -1 and -6 shots. Up, dn, dx, and sx might be combined into a single command that takes a vector (basically removes an (x, y) pair from the stack).
Here's animal minimalis rewritten in what I would see such a language being:
bang = vector movement command I was talking about above. It's also additive in this example (shvarz suggested this once, and I think in this example it works):
'Good for mutation sims and for newbies to see how a basic bot works.
'Contains everything necessary for it to survive and reproduce.
cond
5 eye 0 >
refeye myeye !=
start
refvel bang
0 30 bang
stop
cond
5 eye 50 >
refeye myeye !=
start
0 nrgshoot 'default strength energy shot
0 -30 bang 'erase the added 30 velocity if we get too close
stop
cond
5 eye 0 =
refeye myeye = or
start
314 rnd turnright
stop
cond
nrg 20000 >
start
10 repro
stop
Obviously alot of work would be needed to go through each and every sysvar and command and try and sort a clear and coherant language from it. Special care would need to be taken with sysvar names I think. Alot of them are currently a little obtuse.
We'd probably need to create a kind of ARB to design the language, again similar to how OpenGL operates. And, while I'm on topic, a way for users to create their own "extensions" would be nice, but I'm not sure how something like that might work.
It plays to the strengths of evolution as I understand it from playing around with Darwinbots. Random mutation is absolutely terrible at finding a single specific value needed for a specific action. Most interesting mutations I've seen have been from the DNA manipulating the stack in a new way, and less from finding a new place to store data.
Incredibly drastic suggestion, so I'm not really endorsing it yet. Just brainstorming.