  We consider the problem of providing a rigorous model for programming
wireless sensor networks. Assuming that collisions, packet losses, and errors
are dealt with at the lower layers of the protocol stack, we propose a Calculus
for Sensor Networks (CSN) that captures the main abstractions for programming
applications for this class of devices. Besides providing the syntax and
semantics for the calculus, we show its expressiveness by providing
implementations for several examples of typical operations on sensor networks.
Also included is a detailed discussion of possible extensions to CSN that
enable the modeling of other important features of these networks such as
sensor state, sampling strategies, and network security.
