Greg Morrisett, Ph.D.
Division of Engineering and Applied Science
Harvard University
Cambridge, MA
Date:
Monday April 9, 2007
Time:
Location: 367 Votey
Abstract
Matt Welsh's group at Harvard has been developing sensor network applications for a wide variety of real-world tasks including monitoring volcanoes in South America for seismic activity, and monitoring Parkinsons patients for limb movement. We've found that today's programming environments make it extremely hard to write robust applications that really fit the needs of domain scientists, and yet respect the critical resource constraints of sensor platforms. The goal of our Fiji project is to make it possible for domain scientists (i.e., vulcanologists, medical doctors) to easily and rapidly build new applications without having to learn the ins and outs of low-level, sensor programming. Ideally, they should be able to think of the collection of sensors and actuators as a single ensemble and be able to extract the right bits of data from the network at the right times. Towards this goal, we have been developing two new languages inspired by work on functional reactive programming. The first language, Flask, is a node-level environment that provides the illusion of a higher-order, polymorphic functional language for building dataflow programs. The higher order aspects of Flask make it easy to build re-usable components and rapidly wire them together. But the language is carefully constrained so that we can map Flask programs down to very efficient mote level programs. The second language, Regiment, is similar to Flask in that it is a higher-order, functional dataflow language. However, Regiment provides abstractions for directing and coordinating collections of nodes, as an ensemble. Thus, Regiment lifts the temporal abstractions of Flask into a spatio-temporal domain.
This is joint work with Matt Welsh and Geoff Mainland of Harvard, and Ryan Newton of MIT.
(This seminar is sponsored and jointly offered by Computer Science Student Association.)