The nesC language: A holistic approach to networked embedded systems

The nesC language: A holistic approach to networked embedded systems
复制标题

DOI:
10.1145/781131.781133
复制
发表时间:
2003-05
期刊:
Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
影响因子:
--
通讯作者:
David E. Gay;P. Levis;R. von Behren;Matt Welsh;E. Brewer;D. Culler
David E. Gay;P. Levis;R. von Behren;Matt Welsh;E. Brewer;D. Culler
中科院分区:
其他
文献类型:
--
作者:
David E. Gay;P. Levis;R. von Behren;Matt Welsh;E. Brewer;D. Culler

文献摘要

被引文献

相似文献

我们提出了一种用于网络嵌入式系统的编程语言NesC,它代表了应用程序开发人员的一个新的设计空间。网络嵌入式系统的一个例子是传感器网络,它由(可能)数千个微小的、低功率的“微尘”组成,每个微尘执行并发的、反应性的程序,这些程序必须在严格的内存和功率限制下运行。NesC的贡献是通过公开一个结合了事件驱动执行、灵活的并发模型和面向组件的应用程序设计的编程模型来支持该领域的特殊需求。对编程模型的限制允许NesC编译器执行全程序分析,包括数据竞争检测(提高可靠性)和主动函数内联(降低资源消耗)。NesC已用于实现TinyOS,一个用于传感器网络的小型操作系统,以及几个重要的传感器应用程序。NesC和TinyOS已经被大量的传感器网络研究小组采用,我们的经验和对该语言的评估表明,它在支持这类新的深度网络化系统所需的复杂、并发编程风格方面是有效的。
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.