Computer programs are basically algorithms that operate on data. Over the years Programming languages have evolved increasingly useful ways in which to store and represent data. It seems worhtwhile to consider these techniques to perhaps gain insights into how biological systems may handle similar data processing challenges.
While, of course, all computer data is fundamentally zeroes and ones, early languages allowed creation of numerical and character string types. Following is a (partial) list of other types that evolved over the years:
Container (Structure, Record,Class)
Object oriented programming developed the practice of "encapsulating" data together with algorithms that operate on the data.
The algebraic nature of Histone modifications (see The Histone Code) has a natural quadtree structure. The well studied computational advantages of this data structure may hold clues to biological functioning.
Quadtrees and Hierarchical Space Decomposition
The basic principle of a quadtree is to cover a planar region of interest by a square, then recursively partition squares into smaller squares until each square contains a suitably uniform subset of the input; for instance this can be used to compress bitmap images by subdividing until each square has the same color value. This and related partitions have many applications in computational geometry and geometric applications, including data clustering, shape representation, n-body simulation in astronomy and molecular modeling, and mesh generation.
Encoding coordinates with quadtrees can provide significant improvements in efficiency when accessing sources near a given direction.
Advantages and Disadvantages of Quad Tree Picture Representation
Why are quad trees used extensively in computer graphics? Mainly, quad trees can be manipulated and accessed much quicker than other models. For that reason, quad trees are very popular in fractal graphics. Other advantages of quad trees include:
Erasing a picture takes only one step. All that is required is to set the root node to neutral.
Zooming to a particular quadrant in the tree is a one step operation.
To reduce the complexity of the image, it suffices to remove the final level of nodes.
Accessing particular regions of the image is a very fast operation. This is useful for updating certain regions of an image, perhaps for an environment with multiple windows.
The inherent recursive nature of quad trees turns a normally linear data structure into a recursive data structure.