Your website development partner
Drupal cookbook and ingredient guidelines
Setup: 20-Apr-2013 
One way to view Drupal is as a state-transition machine. This has the benefit of affording a structured way to document the complexity of the system.
Drupal consists of a number of key objects, which are evolving into implementations of entities:
Data structures in Drupal can be class instances (typically simple objects), arrays, or simple data types. Arrays are often associative arrays, whereby keys that begin with a hash (#) are considered to be attributes, and keys without a hash are considered to be data.
The array conventions can be considered a kind of data grammar driven by transitions.
The drupal hook mechanism can be considered a state transition mechanism.