The nesC Language: A Holistic Approach to Networked Embedded Systems

被引:32
作者
Gay, David [2 ]
Levis, Philip [1 ]
von Behren, Robert [1 ]
Welsh, Matt [2 ]
Brewer, Eric [1 ]
Culler, David [1 ,2 ]
机构
[1] Univ Calif Berkeley, Dept EECS, Berkeley, CA 94720 USA
[2] Intel Res, Berkeley, CA 94704 USA
基金
美国国家科学基金会;
关键词
Programming Languages; C; Concurrency; Data Races; Components; Modules; First-order; nesC; TinyOS;
D O I
10.1145/2641638.2641652
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页码:41 / 51
页数:11
相关论文
共 48 条
[1]  
Aldrich J., 2002, EUR C OBJ OR PROGR E
[2]  
[Anonymous], CMUSEI2000TR008
[3]  
[Anonymous], PROGRAMMING OBERON S
[4]  
[Anonymous], 1991, P 1991 ACM IEEE C SU
[5]  
[Anonymous], 1994, OLE2 PROGRAMMERS REF, VVolume One.
[6]   SYNCHRONOUS PROGRAMMING WITH EVENTS AND RELATIONS - THE SIGNAL LANGUAGE AND ITS SEMANTICS [J].
BENVENISTE, A ;
LEGUERNIC, P ;
JACQUEMOT, C .
SCIENCE OF COMPUTER PROGRAMMING, 1991, 16 (02) :103-149
[7]   THE ESTEREL LANGUAGE [J].
BOUSSINOT, F ;
DESIMONE, R .
PROCEEDINGS OF THE IEEE, 1991, 79 (09) :1293-1304
[8]  
de Bruin H., 2002, J SUPERCOMP IN PRESS
[9]   Enforcing high-level protocols in low-level software [J].
DeLine, R ;
Fähndrich, M .
ACM SIGPLAN NOTICES, 2001, 36 (05) :59-69
[10]  
Detlefs D.L., 1998, Extended static checking