Terra customizations

The components included in a specific virtual machine define the interface between the application script and the environment, and thus determine the abstraction level at which the script programmer will work. Terra offers a basic library of components that can be included (or not) in a specific virtual machine. As far as possible, these components are parameterized for genericity. New components can also be included by programmer-savvy users to create abstractions for new programming patterns, but the goal of this basic library is to offer a set of components that is sufficient for a range of common applications. This is feasible because most applications for sensor networks are variations of a basic monitoring and control pattern. Because processing resources are limited, these variations typically involve only basic operations for accessing sensors and actuators and coordination among motes.