Flask: Staged Functional Programming for Sensor Networks

DSpace/Manakin Repository

Flask: Staged Functional Programming for Sensor Networks

Citable link to this page


Title: Flask: Staged Functional Programming for Sensor Networks
Author: Mainland, Geoffrey; Welsh, Matt; Morrisett, John Gregory

Note: Order does not necessarily reflect citation order of authors.

Citation: Mainland, Geoffrey, Greg Morrisett, and Matt Welsh. Flask: Staged functional programming for sensor networks. In ICFP '08: Proceedings of the 13th ACM SIGPLAN International Conference on Functional Programming, September 2008, Pages 335-346.
Full Text & Related Files:
Abstract: Severely resource-constrained devices present a confounding challenge to the functional programmer: we are used to having powerful abstraction facilities at our fingertips, but how can we make use of these tools on a device with an 8- or 16-bit CPU and at most tens of kilobytes of RAM? Motivated by this challenge, we have developed Flask, a domain specific language embedded in Haskell that brings the power of functional programming to sensor networks, collections of highly resource-constrained devices. Flask consists of a staging mechanism that cleanly separates node-level code from the meta-language used to generate node-level code fragments; syntactic support for embedding standard sensor network code; a restricted subset of Haskell that runs on sensor networks and constrains program space and time consumption; a higher-level "data stream" combinator library for quickly constructing sensor network programs; and an extensible runtime that provides commonly-used services.

We demonstrate Flask through several small code examples as well as a compiler that generates node-level code to execute a network-wide query specified in a SQL-like language. We show how using Flask ensures constraints on space and time behavior. Through microbenchmarks and measurements on physical hardware, we demonstrate that Flask produces programs that are efficient in terms of CPU and memory usage and that can run effectively on existing sensor network hardware.
Published Version: http://doi.acm.org/10.1145/1411204.1411251
Terms of Use: This article is made available under the terms and conditions applicable to Open Access Policy Articles, as set forth at http://nrs.harvard.edu/urn-3:HUL.InstRepos:dash.current.terms-of-use#OAP
Citable link to this page: http://nrs.harvard.edu/urn-3:HUL.InstRepos:2797447
Downloads of this work:

Show full Dublin Core record

This item appears in the following Collection(s)


Search DASH

Advanced Search