NesT: Staged Programming For Sensor Networks
Our new NesT project ("improved NesC/TinyOS", not a refreshing cold beverage) aims to simultaneously improve the efficiency (in terms of power consumption and memory usage) as well as programmability of sensor network applications, or in general any program requiring an incredibly small footprint to run in. At this point we have developed the theoretical ideas in a small ML-like staged programming language, <ML>. This project is a joint collaboration with University of Vermont and SUNY Binghamton.
Publications
- Yu David Liu, Christian Skalka, and Scott Smith. Type-Specialized Staged Programming with
Process Separation. Workshop on Generic Programming,
Edinburgh, Scotland, 2009. slides
Abstract: Staging is a powerful language construct that allows a program at one stage to manipulate and specialize a program at the next. We propose <ML> as a new staged calculus designed with novel features for staged programming in modern computing platforms such as embedded systems. A distinguishing feature of <ML> is a model of process separation, whereby different stages of computation are executed in different process spaces. Our language also supports dynamic type specialization, via type abstraction, dynamic type construction, and a limited form of type dependence. <ML> is endowed with a largely standard metatheory, including type preservation and type safety results. We discuss the utility of our language via code examples from the domain of wireless sensor network programming.