You have an interesting analogy with the game of life. In the game of life every iteration is constant time. Totally predictable. What happens in the data structure though evolves over eons of iterations.
From your and potatohead's discussion, particularly his line about the data being "more like a substrate or mere vehicle for the real program, which gets encoded in the data processed by the code", there's a small step to seeing this as something like a bytecode interpreter. It has the same characteristics in that each iteration is time bounded and that the computation is actually encoded in the data that's being processed, not the machine code being run.
In the other direction I suppose you could say the same about true asm. The CPU's state machine is a kind of program and the code is simply data to run through that state machine.
Comments
From your and potatohead's discussion, particularly his line about the data being "more like a substrate or mere vehicle for the real program, which gets encoded in the data processed by the code", there's a small step to seeing this as something like a bytecode interpreter. It has the same characteristics in that each iteration is time bounded and that the computation is actually encoded in the data that's being processed, not the machine code being run.
In the other direction I suppose you could say the same about true asm. The CPU's state machine is a kind of program and the code is simply data to run through that state machine.
It's turtles all the way down...err...up!