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, 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.

Keywords

Computer scienceCompilerConcurrencyEmbedded systemReliability (semiconductor)Programming paradigmDistributed computingOperating systemProgramming languagePower (physics)

Affiliated Institutions

Related Publications

Publication Info

Year
2003
Type
article
Citations
54
Access
Closed

External Links

Social Impact

Altmetric
PlumX Metrics

Social media, news, blog, policy document mentions

Citation Metrics

54
OpenAlex

Cite This

David Gay, Philip Levis, Robert von Behren et al. (2003). The <i>nesC</i> language. . https://doi.org/10.1145/781132.781133

Identifiers

DOI
10.1145/781132.781133