Document Type


Date of Degree

Fall 2009

Degree Name

PhD (Doctor of Philosophy)

Degree In

Computer Science

First Advisor

Ted Herman

First Committee Member

Sukumar Ghosh

Second Committee Member

Steve Bruell

Third Committee Member

EJ Jung

Fourth Committee Member

Geb Thomas


Ubiquitous computing has become a widespread phenomenon in today's modern world, with the computing technology integrating with our daily life in an invisible manner. Embedded systems and wireless sensor networks are popular choices to achieve this. Programming embedded and sensor network systems has always been a challenge for the programmers due to the lack of sufficient high-level programming support. To deal with this serious limitation, we have developed DESAL (Dynamic Embedded Sensing and Actuation Language) which is a user-friendly high-level programming language for wireless sensor networks with an integrated middleware, which hides the low-level detail from the programmers. In this thesis we present the design and development of DESAL.

We have made DESAL programs rule based. Programs are written in guard-action format defined in terms of the program states. There are established formal correctness proving methods that can work on guard-action formats to mathematically check a program for errors. Also, there is no hidden control context like events or interrupts. Time synchronization has been developed as part of the middleware that lets DESAL programs to coordinate through synchronized actions throughout the network. This facilitates classic coordination algorithms like clock synchronization, spanning tree construction and consensus. Also, synchronized wake up saves energy. Neighborhood management, including node discovery and monitoring, is also provided by the middleware. DESAL programs communicate via state sharing. There is no network programming required. The middleware provides that automatically. Combining all these features DESAL provides major network management services, and yet presents the users with a simple high-level programming interface. We implemented the DESAL compiler to convert DESAL programs to NesC on TinyOS and to Java.

Another novel feature we have introduced in DESAL is a variable of type 'token'. The concept of token is commonly used in mutual exclusion algorithms. One of the case studies we have done uses the token variable to achieve increased lifetime of sensors in a ring topology. The working of token is hidden from the user. The token mechanism developed achieves self-stabilization in the system. Another case study with tokens involves selective activation of RFID tags in a scenario where among the three RFID tags present only one can work at a time.

Struct is a new data structure introduced in DESAL. Sometimes we need to group together two or more variables. It is important to receive them at the same time. Hence, it is important to send these grouped data over the radio together. Struct does that. Function is another newly added feature to DESAL. Function is added to group together repeated statements in a program. The unique feature of function is that, it uses only global variables. No new local variable is declared. This can significantly reduce the stack overhead of the program, thus saving memory and running time.

Case studies have been done to illustrate the features of DESAL and to find scope for improvement.


Distributed Systems, Programming, Self Stabilization, Sensor Networks, Wireless


vi, 130 pages


Includes bibliographical references (pages 126-130).


Copyright 2009 Kajari Ghosh Dastidar