The nesC language: A holistic approach to networked embedded systems


We present <i>nesC</i>, 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, low-power "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.

DOI: 10.1145/781131.781133

Extracted Key Phrases

14 Figures and Tables

Citations per Year

1,892 Citations

Semantic Scholar estimates that this publication has 1,892 citations based on the available data.

See our FAQ for additional information.

Cite this paper

@inproceedings{Gay2003TheNL, title={The nesC language: A holistic approach to networked embedded systems}, author={David Gay and Philip Levis and J. Robert von Behren and Matt Welsh and Eric A. Brewer and David E. Culler}, booktitle={PLDI}, year={2003} }