Author Topic: oooh oooh oooh cool idea  (Read 2425 times)

Offline jknilinux

  • Bot Destroyer
  • ***
  • Posts: 468
    • View Profile
oooh oooh oooh cool idea
« on: November 16, 2009, 01:25:01 PM »
could we have an option to make the DB code pic/bs2/something else assembly? That way we could have a hardware implementation on such a processor. all you need is a boe-bot and you got your own evolved robot in HW!!!

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
oooh oooh oooh cool idea
« Reply #1 on: November 16, 2009, 07:18:50 PM »
Most assembly instruction sets are not built to be, shall we say, "closed".  They're built to be fragile, so that they give early warning when code does something bad.  If you randomly generate a length of 1000 assembly instructions the possibility to "crash" the CPU is quite high.  By contrast, the DNA virtual machine is built to be extremely robust and "closed" (By closed, I mean that any mutation on a valid DNA program produces a valid DNA program.  The language is "closed" under mutations).  Any randomly generated DNA will produce deterministic and non-crashy results.  You take the square root of a negative number and you get 0 instead of a NaN (or worse, a signalling NaN), for instance.  Or you try to store to an invalid memory location and it either mods the value or "fizzles" with no effect.

So there is some methodology to the madness.  Actual computer hardware is IMO too unforgiving for artificial life.

But that said, the design is built to be modular.  So you could easily build add-on modules for other DNA languages based on any design that made sense.  And you could run different species with different DNA systems in the same simulation.  Maybe there's an instruction set that's more alife friendly or you can think of clever ways to guard against full system failure.  I haven't really explored different assembly instruction sets to say for sure.  The only requirement is that actions are signaled to the bot's "body" by storing in one of the 1000 integer sysvars.

The DNA part of the program is more or less well established, so if you (or someone) wanted to build a DNA module that supported another language, it would be a fairly straightforward implementation and it would be a good way for me to flush out any DNA interfaces which may or may not exist at this point.