ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Science of Computer Programming - Special issue on mathematics of program construction
QuickCheck: a lightweight tool for random testing of Haskell programs
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Composing contracts: an adventure in financial engineering (functional pearl)
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
MetaML and multi-stage programming with explicit annotations
Theoretical Computer Science - Partial evaluation and semantics-based program manipulation
System architecture directions for networked sensors
ASPLOS IX Proceedings of the ninth international conference on Architectural support for programming languages and operating systems
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Functional reactive robotics: an exercise in principled integration of domain-specific languages
Proceedings of the 4th ACM SIGPLAN international conference on Principles and practice of declarative programming
Template meta-programming for Haskell
Proceedings of the 2002 ACM SIGPLAN workshop on Haskell
Functional reactive programming, continued
Proceedings of the 2002 ACM SIGPLAN workshop on Haskell
Guarded recursive datatype constructors
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A stream compiler for communication-exposed architectures
Proceedings of the 10th international conference on Architectural support for programming languages and operating systems
PADL '02 Proceedings of the 4th International Symposium on Practical Aspects of Declarative Languages
The nesC language: A holistic approach to networked embedded systems
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Multi-Stage Programming: Its Theory and Applications
Multi-Stage Programming: Its Theory and Applications
Functional reactive programming for real-time reactive systems
Functional reactive programming for real-time reactive systems
TinyGALS: a programming model for event-driven embedded systems
Proceedings of the 2003 ACM symposium on Applied computing
Secrets of the Glasgow Haskell Compiler inliner
Journal of Functional Programming
A wireless sensor network For structural monitoring
SenSys '04 Proceedings of the 2nd international conference on Embedded networked sensor systems
TinyDB: an acquisitional query processing system for sensor networks
ACM Transactions on Database Systems (TODS) - Special Issue: SIGMOD/PODS 2003
EESR '05 Proceedings of the 2005 workshop on End-to-end, sense-and-respond systems, applications and services
Kairos: a macro-programming system for wireless sensor networks
Proceedings of the twentieth ACM symposium on Operating systems principles
Avrora: scalable sensor network simulation with precise timing
IPSN '05 Proceedings of the 4th international symposium on Information processing in sensor networks
MoteLab: a wireless sensor network testbed
IPSN '05 Proceedings of the 4th international symposium on Information processing in sensor networks
Simple unification-based type inference for GADTs
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
The Tenet architecture for tiered sensor networks
Proceedings of the 4th international conference on Embedded networked sensor systems
System F with type equality coercions
TLDI '07 Proceedings of the 2007 ACM SIGPLAN international workshop on Types in languages design and implementation
An empirical study of collaborative acoustic source localization
Proceedings of the 6th international conference on Information processing in sensor networks
The regiment macroprogramming system
Proceedings of the 6th international conference on Information processing in sensor networks
Reliable and efficient programming abstractions for wireless sensor networks
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
NSDI'05 Proceedings of the 2nd conference on Symposium on Networked Systems Design & Implementation - Volume 2
Fidelity and yield in a volcano monitoring sensor network
OSDI '06 Proceedings of the 7th USENIX Symposium on Operating Systems Design and Implementation - Volume 7
Why it's nice to be quoted: quasiquoting for haskell
Haskell '07 Proceedings of the ACM SIGPLAN workshop on Haskell workshop
Eon: a language and runtime system for perpetual systems
Proceedings of the 5th international conference on Embedded networked sensor systems
Design and comparison of lightweight group management strategies in envirosuite
DCOSS'05 Proceedings of the First IEEE international conference on Distributed Computing in Sensor Systems
AFP'04 Proceedings of the 5th international conference on Advanced Functional Programming
Semantic streams: a framework for composable semantic interpretation of sensor data
EWSN'06 Proceedings of the Third European conference on Wireless Sensor Networks
Resource aware programming in the Pixie OS
Proceedings of the 6th ACM conference on Embedded network sensor systems
Safe functional reactive programming through dependent types
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Experience report: embedded, parallel computer-vision with a functional DSL
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Type-specialized staged programming with process separation
Proceedings of the 2009 ACM SIGPLAN workshop on Generic programming
Programming storage-centric sensor networks with Squirrel
Proceedings of the 9th ACM/IEEE International Conference on Information Processing in Sensor Networks
A modular and extensible macroprogramming compiler
Proceedings of the 2010 ICSE Workshop on Software Engineering for Sensor Network Applications
Nikola: embedding compiled GPU functions in Haskell
Proceedings of the third ACM Haskell symposium on Haskell
Loosely-coupled distributed reactive programming in mobile ad hoc networks
TOOLS'10 Proceedings of the 48th international conference on Objects, models, components, patterns
Programming wireless sensor networks: Fundamental concepts and state of the art
ACM Computing Surveys (CSUR)
Mixed-level embedding and JIT compilation for an iteratively staged DSL
WFLP'10 Proceedings of the 19th international conference on Functional and constraint logic programming
Frenetic: a network programming language
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Embedding a functional hybrid modelling language in Haskell
IFL'08 Proceedings of the 20th international conference on Implementation and application of functional languages
Mnemonics: type-safe bytecode generation at run time
Higher-Order and Symbolic Computation
Explicitly heterogeneous metaprogramming with MetaHaskell
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Type-specialized staged programming with process separation
Higher-Order and Symbolic Computation
Scalaness/nesT: type specialized staged programming for sensor networks
Proceedings of the 12th international conference on Generative programming: concepts & experiences
The shape of things to run: compiling complex stream graphs to reconfigurable hardware in lime
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
Hi-index | 0.00 |
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.