Towards Better Compilers & Bug Finding for Sensor Networks

Speaker Professor Jens Palsberg
Computer Science Department
University of California, Los Angeles
Location McDonnell Douglas Auditorium
Date & Time May 24, 2004
Refreshments at 2:30pm, Lecture begins at 3:00pm
Abstract Sensor-network programmers face tough challenges. They must maximize the network life time while managing resource tradeoffs among energy consumption, stack space, code size, response time, and throughput. For example, a programmer can choose to inline a call and thereby decrease the response time and decrease the stack space, but also increase the code size.

Additionally, a programmer can choose to do more computation locally
on a sensor node and thereby decrease communication and the energy consumption, but also increase the code size. Such tradeoffs make programming difficult and error prone. Most current compilers don’t help with making resource tradeoffs and there are few tools for finding resource bugs such as stack overflow. Can we design better compilers and bug-finding tools that will help out sensor-network programmers?

In this talk Jens Palsberg will examine the state of the art (TinyOS, NesC, TOSSIM), survey recent results on stack analysis and deadline analysis, and give an overview of the UCLA compiler group’s project on building compiler and bug-finding tools for NesC and the Berkeley Mote sensor node platform.


Jens Palsberg is a Professor of Computer Science at UCLA. His research interests span the areas of compilers, embedded systems, programming languages, software engineering, and information security. He has authored over 70 technical papers, co-authored the book Object-Oriented Type Systems, and co-authored the 2002 revision of Appel’s textbook on Modern Compiler Implementation in Java. He is the recipient of National Science Foundation CAREER and ITR awards, a Purdue University Faculty Scholar award, and an Okawa Foundation research award. His research has also been supported by DARPA, IBM, Intel, and British Telecom. He is an associate editor of ACM Transactions of Programming Languages and Systems, a member of the editorial board of Information and Computation, and a former member of the editorial board of IEEE Transactions on Software Engineering. He is serving as the general chair of the ACM Symposium on Principles of Programming Languages in 2005.