A Compilation Framework for Macroprogramming Networked Sensors

Macroprogramming-the technique of specifying the behavior of the system, as opposed to the constituent nodes-provides application developers with high level abstractions that alleviate the programming burden in developing wireless sensor network (WSN) applications. However, as the semantic gap between macroprogramming abstractions and node-level code is considerably wider than in traditional programming, converting the high level specification to running code is a daunting process, and a major hurdle to the acceptance of macroprogramming. In this paper, we propose a general compilation framework for a data-driven macroprogramming language that allows for plugging in different modules implementing various stages of compilation.We also demonstrate an actual instantiation of our framework by showing an end-to-end solution for compiling macroprograms. Our compiler provides the final code to be deployed on real nodes as well as an estimate of the costs the running system will incur, e.g., in terms of messages exchanged. We compared the auto-generated code against a handcoded version for the same application behavior to verify the outcome of our compiler.

[1]  Ryan Newton,et al.  Region streams: functional macroprogramming for sensor networks , 2004, DMSN '04.

[2]  Robert Szewczyk,et al.  System architecture directions for networked sensors , 2000, ASPLOS IX.

[3]  Viktor K. Prasanna,et al.  Enabling Scoping in Sensor Network Macroprogramming ∗ , 2006 .

[4]  Viktor K. Prasanna,et al.  System-level Support for Macroprogramming of Networked Sensing Applications , 2005, PSC.

[5]  Viktor K. Prasanna,et al.  Enabling Scope-Based Interactions in Sensor Network Macroprogramming , 2007, 2007 IEEE Internatonal Conference on Mobile Adhoc and Sensor Systems.

[6]  Luca Mottola,et al.  Logical Neighborhoods: A Programming Abstraction for Wireless Sensor Networks , 2006, DCOSS.

[7]  Brad Karp,et al.  GPSR: greedy perimeter stateless routing for wireless networks , 2000, MobiCom '00.

[8]  Viktor K. Prasanna,et al.  Issues in designing a compilation framework for macroprogrammed networked sensor systems , 2006, InterSense '06.

[9]  Alan Burns,et al.  Portable worst-case execution time analysis using Java Byte Code , 2000, Proceedings 12th Euromicro Conference on Real-Time Systems. Euromicro RTS 2000.

[10]  David E. Culler,et al.  The nesC language: A holistic approach to networked embedded systems , 2003, PLDI '03.

[11]  Ryan Newton,et al.  Building up to macroprogramming: an intermediate language for sensor networks , 2005, IPSN 2005. Fourth International Symposium on Information Processing in Sensor Networks, 2005..

[12]  Luca Mottola,et al.  Programming wireless sensor networks with logical neighborhoods , 2006, InterSense '06.

[13]  James C. Corbett,et al.  Bandera: extracting finite-state models from Java source code , 2000, ICSE.

[14]  Gaurav S. Sukhatme,et al.  Adaptive sampling for environmental field estimation using robotic sensors , 2004, 2005 IEEE/RSJ International Conference on Intelligent Robots and Systems.

[15]  Sajal K. Das,et al.  A framework for energy-saving data gathering using two-phase clustering in wireless sensor networks , 2004, The First Annual International Conference on Mobile and Ubiquitous Systems: Networking and Services, 2004. MOBIQUITOUS 2004..

[16]  Robbert van Renesse,et al.  JiST: an efficient approach to simulation using virtual machines , 2005, Softw. Pract. Exp..

[17]  Tarek F. Abdelzaher,et al.  EnviroSuite: An environmentally immersive programming framework for sensor networks , 2006, TECS.

[18]  Viktor K. Prasanna,et al.  The Abstract Task Graph: a methodology for architecture-independent programming of networked sensor systems , 2005, EESR '05.

[19]  Deborah Estrin,et al.  A sensor network application construction kit (SNACK) , 2004, SenSys '04.

[20]  Ramesh Govindan,et al.  Macro-programming Wireless Sensor Networks Using Kairos , 2005, DCOSS.