Biological Analogies:
Code Reuse
The local program consist of two parts. The first part is the local rules
that encode the axioms and other primitives. This part forms the majority
of the local program and remains fixed accross all processors and all target
shapes The second part is derived from the global shape program and consists
of the sequence in which the primitives are called. Hence the final shape
is encoded in a very small section of the dna of each processor. The majority
of dna encodes the capability of the processor.
This gives us one possible explanation of how large sections of the
DNA can remain the same accross different species, if the majority of the
dna is simply devoted to primitive operations. Furtherone could see how
simple mutations in the sequence could create whole new structures (extra
fingers, wings) whereas mutations in the primitives could doom the embryo.
side note - this depends on the fact that the logic of the primitives
can be encoded separate from the arguments. for example the logic of axiom1
can be encoded without explicitly specifying which two gradient chemicals
will be used, or at least encoded in a way that the logic occurs only once,
but may accept multiple gradients as inputs.
Regions and Modularity
The idea of restricting local rules to act only within a region has an
interesting application to code reuse. If the regions have impassable bounderies
and do not overlap then the same code (or dna) with the same gradients
(protiens) can be used to create multiple structures. Add to this the idea
of scale independence and one could engineer a hand pattern, simply by
using the same code in regions of different sizes and this program would
be easily modified (or mutated) to produce extra fingers.
Similarities with GPL
Comparison may highlight what kinds of global languages / descriptions
are appropriate when trying to engineer / understand local behavior.
D'Arcy Thompson