computation complexity evolution

Definition

bff

bff is a minimalist, self-modifying programming language and environment used for artificial life simulations. It is a variant of Brainfuck that places its code directly on the data tape, allowing programs to read, write, and modify their own instructions.

The Simulation

In the bff environment, a “soup” of tapes (typically 64 bytes long) is initialised with random values, forming a turing gas. The tapes are periodically selected for random interactions, where two tapes are temporarily joined and run as a combined program.

Key Observations

  • Phase Transition: After a quiescent period of random interactions, the soup undergoes a sudden transition to full-tape replication.
  • Dynamic Stability: Replicators dominate the population because they are more dynamically stable than non-replicating code.
  • Symbiogenesis: The emergence of complex replicators is driven by the symbiotic fusion of smaller, imperfectly replicating code fragments rather than simple point mutation.

Obs

bff serves as a proof of concept that life-like purposiveness and complexity emerge spontaneously in any environment capable of universal computation, provided there is sufficient time and randomness.