Efficient Type and Memory Safety for Tiny Embedded Systems

John Regehr Nathan Cooprider Will Archer Eric Eide
regehr@cs.utah.edu coop@cs.utah.edu warcher@cs.utah.edu eeide@cs.utah.edu

University of Utah, School of Computing
50 South Central Campus Drive, Room 3190
Salt Lake City, Utah 84112-9205

In Proceedings of the PLOS 2006 Workshop on Linguistic Support for Modern Operating Systems, San Jose, California, October 2006.

© ACM, 2006. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was published in PLOS 2006.


We report our experience in implementing type and memory safety in an efficient manner for sensor network nodes running TinyOS: tiny embedded systems running legacy, C-like code. A compiler for a safe language must often insert dynamic checks into the programs it produces; these generally make programs both larger and slower. In this paper, we describe our novel compiler toolchain, which uses a family of techniques to minimize or avoid these run-time costs. Our results show that safety can in fact be implemented cheaply on low-end 8-bit microcontrollers.

Nathan Cooprider <coop@cs.utah.edu>