Abstract
Programming wireless embedded networks is challenging due to severe limitations on processing speed, memory, and bandwidth. Staged programming can help bridge the gap between high level code refinement techniques and efficient device level programs by allowing a first stage program to specialize device level code. Here we introduce a two stage programming system for wireless sensor networks. The first stage program is written in our extended dialect of Scala, called Scalaness, where components written in our type safe dialect of nesC, called nesT, are composed and specialized. Scalaness programs can dynamically construct TinyOS-compliant nesT device images that can be deployed to motes. A key result, called cross-stage type safety, shows that successful static type checking of a Scalaness program means no type errors will arise either during programmatic composition and specialization of WSN code, or later on the WSN itself. Scalaness has been implemented through direct modification of the Scala compiler. Implementation of a staged public-key cryptography calculation shows the sensor memory footprint can be significantly reduced by staging.
- D. Ancona and E. Zucca. A calculus of module systems. Journal of functional programming, 11:91--132, 2002. Google Scholar
Digital Library
- L. Cardelli. Program fragments, linking, and modularization. In POPL, pages 266--277, 1997. Google Scholar
Digital Library
- L. Cardelli and P. Wegner. On understanding types, data abstraction, and polymorphism. ACM Comput. Surv., 17(4):471--523, 1985. Google Scholar
Digital Library
- P. Chapin and C. Skalka. SpartanRPC: Secure WSN middleware for cooperating domains. In MASS, November 2010.Google Scholar
Cross Ref
- P. Chapin and C. Skalka. Spartan RPC. Technical report, University of Vermont, 2013. Submitted. http://www.cs.uvm.edu/~skalka/skalka-pubs/ chapin-skalka-spartanrpctr.pdf.Google Scholar
- E. Cheong. Actor-Oriented Programming for Wireless Sensor Networks. PhD thesis, University of California, Berkeley, 2007. Google Scholar
Digital Library
- A. Chlipala. Ur: Statically-typed metaprogramming with type-level record computation. In PLDI, 2010. Google Scholar
Digital Library
- C. Consel, L. Hornof, R. Marlet, G. Muller, S. Thibault, E.-N. Volanschi, J. Lawall, and J. Noyé. Tempo: specializing systems applications and beyond. ACM Comput. Surv., 1998. Google Scholar
Digital Library
- P. K. Dutta, J. W. Hui, D. C. Chu, and D. E. Culler. Securing the deluge network programming system. In IPSN, pages 326--333, 2006. Google Scholar
Digital Library
- M. Flatt and M. Felleisen. Units: Cool modules for HOT languages. In PLDI, 1998. Google Scholar
Digital Library
- J. Frolik and C. Skalka. Snowcloud: A complete system for snow hydrology research. In RealWSN, 2013.Google Scholar
- D. Gay, P. Levis, R. von Behren, M. Welsh, E. Brewer, and D. Culler. The nesC language: A holistic approach to networked embedded systems. In PLDI, 2003. Google Scholar
Digital Library
- G. Ghelli and B. Pierce. Bounded existentials and minimal typing. Theoretical Computer Science, 193(1-2):75--96, 1998. Google Scholar
Digital Library
- D. Gregor, J. Järvi, J. G. Siek, G. D. Reis, B. Stroustrup, and A. Lumsdaine. Concepts: Linguistic support for generic programming in C++. In OOPSLA, 2006. Google Scholar
Digital Library
- K. Hammond and G. Michaelson. Hume: A domain-specific language for real-time embedded systems. In GPCE, pages 37--56. Springer- Verlag, 2003. Google Scholar
Digital Library
- J. Hill, R. Szewczyk, A. Woo, S. Hollar, D. E. Culler, and K. S. J. Pister. System architecture directions for networked sensors. In ASPLAS, pages 93--104, 2000. Google Scholar
Digital Library
- A. Igarashi, B. C. Pierce, and P. Wadler. Featherweight Java. ACM Trans. Program. Lang. Syst., 23(3):396--450, 2001. Google Scholar
Digital Library
- N. Li and J. C. Mitchell. RT: A role-based trust-management framework. In Proceedings of the 3rd DARPA Information Survivability Conference and Exposition, pages 201--212, 2003.Google Scholar
- A. Liu and P. Ning. Tinyecc: A configurable library for elliptic curve cryptography in wireless sensor networks. In IPSN, pages 245--256, 2008. Google Scholar
Digital Library
- Y. Liu, C. Skalka, and S. Smith. Type-specialized staged programming with process separation. HOSC, pages 341--385, 2011. Google Scholar
Digital Library
- D. MacQueen. Modules for Standard ML. In Proceedings of ACM Conference on Lisp and Functional Programming, 1984. Google Scholar
Digital Library
- S. Madden, M. J. Franklin, J. M. Hellerstein, and W. Hong. TAG: a Tiny AGgregation service for ad-hoc sensor networks. SIGOPS Oper. Syst. Rev., 36(SI):131--146, 2002. Google Scholar
Digital Library
- G. Mainland. Explicitly heterogeneous metaprogramming with MetaHaskell. In ICFP, 2012. Google Scholar
Digital Library
- G. Mainland, G. Morrisett, and M. Welsh. Flask: staged functional programming for sensor networks. In ICFP, 2008. Google Scholar
Digital Library
- J. Mitchell, S. Meldal, and N. Madhav. An extension of standard ML modules with subtyping and inheritance. In POPL, 1991. Google Scholar
Digital Library
- C. D. Moeser, M. Walker, C. Skalka, and J. Frolik. Application of a wireless sensor network for distributed snow water equivalence estimation. In Western Snow Conference, 2011.Google Scholar
- T. Molhave and L. H. Petersen. Assignment Featherweight Java. Master's thesis, University of Aarhus, 2005.Google Scholar
- L. Mottola and G. P. Picco. Programming wireless sensor networks. ACM Computing Surveys, 2011. Google Scholar
Digital Library
- G. C. Necula, S. McPeak, and W. Weimer. CCured: type-safe retrofitting of legacy code. In POPL, 2002. Google Scholar
Digital Library
- M. Odersky, L. Spoon, and B. Venners. Programming in Scala, second edition. Artima, Inc, 2011.Google Scholar
- T. Rompf and M. Odersky. Lightweight modular staging: a pragmatic approach to runtime code generation and compiled DSLs. In GPCE, pages 127--136, 2010. Google Scholar
Digital Library
- W. Taha. Resource-aware programming. In ICESS, pages 38--43, 2004. Google Scholar
Digital Library
- W. Taha and T. Sheard. Multi-stage programming with explicit annotations. In PEPM, pages 203--217, 1997. ISBN 0-89791-917-3. Google Scholar
Digital Library
- R. Willett, A. Martin, and R. Nowak. Backcasting: adaptive sampling for sensor networks. In IPSN, pages 124--133, 2004. Google Scholar
Digital Library
Index Terms
Scalaness/nesT: type specialized staged programming for sensor networks
Recommendations
Scalaness/nesT: type specialized staged programming for sensor networks
GPCE '13: Proceedings of the 12th international conference on Generative programming: concepts & experiencesProgramming wireless embedded networks is challenging due to severe limitations on processing speed, memory, and bandwidth. Staged programming can help bridge the gap between high level code refinement techniques and efficient device level programs by ...
WsVsSenNet: An Era of Enhanced Vision Based Sensing Capability
ICCTD '09: Proceedings of the 2009 International Conference on Computer Technology and Development - Volume 01Flexible and multi-adaptive platforms are always being appreciated by the people. In the field of Information Technology the wireless vision sensor network is one of the fastest growing segments. Due to their flexibility of networks and easily ...
Viptos: a graphical development and simulation environment for TinyOS-based wireless sensor networks
SenSys '05: Proceedings of the 3rd international conference on Embedded networked sensor systemsWe are announcing the first release of Viptos (Visual Ptolemy and TinyOS), an integrated graphical development and simulation environment for TinyOS-based wireless sensor networks. Viptos allows developers to create block and arrow diagrams to construct ...







Comments