Concepedia

TLDR

Sensor networks consist of thousands of low‑power motes running concurrent reactive programs under tight memory and power limits. The paper introduces nesC, a language designed to meet the event‑driven, concurrent, component‑oriented needs of sensor network developers. nesC achieves this through a programming model that supports event‑driven execution, flexible concurrency, component‑oriented design, and compiler‑enforced restrictions enabling whole‑program analysis, data‑race detection, and aggressive inlining. nesC has been adopted to implement TinyOS and other sensor applications, and evaluations show it effectively supports the complex concurrent programming required by deeply networked systems.

Abstract

We present nesC, a programming language for networked embedded systems that represent a new design space for application developers. An example of a networked embedded system is a sensor network, which consists of (potentially) thousands of tiny, lowpower "motes," each of which execute concurrent, reactive programs that must operate with severe memory and power constraints. nesC's contribution is to support the special needs of this domain by exposing a programming model that incorporates event-driven execution, a flexible concurrency model, and component-oriented application design. Restrictions on the programming model allow the nesC compiler to perform whole-program analyses, including data-race detection (which improves reliability) and aggressive function inlining (which reduces resource consumption). nesC has been used to implement TinyOS, a small operating system for sensor networks, as well as several significant sensor applications. nesC and TinyOS have been adopted by a large number of sensor network research groups, and our experience and evaluation of the language shows that it is effective at supporting the complex, concurrent programming style demanded by this new class of deeply networked systems.

References

YearCitations

Page 1