In this dissertation, I advocate using an actor-oriented approach to designing, generating, programming, and simulating wireless sensor network applications. Actor-oriented programming provides a common high-level language that unifies the programming interface between the operating system, node-centric, middleware, and macroprogramming layers of a sensor network application.
This dissertation presents the TinyGALS (Globally Asynchronous, Locally Synchronous) programming model, which is built on the TinyOS programming model. TinyGALS is implemented in the galsC programming language, which provides constructs to systematically build concurrent tasks called actors. The galsC compiler toolsuite provides high-level type checking and code generation facilities and allows developers to deploy actor-oriented programs on actual sensor node hardware.
This dissertation then describes Viptos (Visual Ptolemy and TinyOS), a joint modeling and design environment for wireless networks and sensor node software. Viptos is built on Ptolemy II, an actor-oriented graphical modeling and simulation environment for embedded systems, and TOSSIM, an interrupt-level discrete-event simulator for TinyOS networks.
This dissertation also presents methods for using higher-order actors with various metaprogramming and generative programming techniques that enable wireless sensor network application developers to create high-level, parameterizable descriptions and automatically generate sensor network simulation scenarios from these models.
All of the tools I developed and describe in this dissertation are open-source and freely available on the web. The networked embedded computing community can use these tools and the knowledge shared in this dissertation to improve the way we program wireless sensor networks.