An implementation of the simulation from
this paper which explores how
self-replicating programs can emerge spontaneously from cellular autonoma.
Runaway "life" only emerges occasionally, so run many times (and get lucky).
Read my post describing the project to get a better idea of
what is happening.
Click on a specific cell on the grid to view its contents. Click "Run" to start the simulation,
and "Generate" to start over. Scroll down more to see the interpreter. You can copy sequences over
and run them in the interpreter.
| Code | Instruction | Description |
|---|---|---|
0
|
0 | Determines whether to enter/exit loops |
1
|
< | h0 = h0 - 1 |
2
|
> | h0 = h0 + 1 |
3
|
{ | h1 = h1 - 1 |
4
|
} | h1 = h1 + 1 |
5
|
- | tape[h0] = tape[h0] - 1 |
6
|
+ | tape[h0] = tape[h0] + 1 |
7
|
. | tape[h1] = tape[h0] |
8
|
, | tape[h0] = tape[h1] |
9
|
[ | if (tape[h0] == 0): jump forwards to matching ] command. |
10
|
] | if (tape[h0] != 0): jump backwards to matching [ command. |
| -1 to -10 | 1 to 10 | Used to store memory |
| -11 to -36 | a to z | Used to store memory |
| 11 to 36 | A to Z | Used to store memory |
| -36> | & | Used to store memory |
| 36< | % | Used to store memory |