A Language for Large Ensembles of Independently Executing Nodes

We address how to write programs for distributed computing systems in which the network topology can change dynamically. Examples of such systems, which we call ensembles , include programmable sensor networks (where the network topology can change due to failures in the nodes or links) and modular robotics systems (whose physical configuration can be rearranged under program control). We extend Meld [1], a logic programming language that allows an ensemble to be viewed as a single computing system. In addition to proving some key properties of the language, we have also implemented a complete compiler for Meld. It generates code for TinyOS [14] and for a Claytronics simulator [12]. We have successfully written correct, efficient, and complex programs for ensembles containing over one million nodes.

[1]  Carlo Zaniolo,et al.  Negation and Aggregates in Recursive Rules: the LDL++ Approach , 1993, DOOD.

[2]  Deborah Estrin,et al.  Guest Editors' Introduction: Overview of Sensor Networks , 2004, Computer.

[3]  Seth Copen Goldstein,et al.  Meld: A declarative approach to programming ensembles , 2007, 2007 IEEE/RSJ International Conference on Intelligent Robots and Systems.

[4]  Seth Copen Goldstein,et al.  Programming modular robots with locally distributed predicates , 2008, 2008 IEEE International Conference on Robotics and Automation.

[5]  Ion Stoica,et al.  Declarative networking: language, execution and optimization , 2006, SIGMOD Conference.

[6]  Frank Pfenning,et al.  System Description: Twelf - A Meta-Logical Framework for Deductive Systems , 1999, CADE.

[7]  Michael Kifer,et al.  Deductive and Object-Oriented Databases , 1991 .

[8]  Seth Copen Goldstein,et al.  Programmable Matter , 2005, Computer.

[9]  Gregory S. Chirikjian,et al.  Modular Self-Reconfigurable Robot Systems [Grand Challenges of Robotics] , 2007, IEEE Robotics & Automation Magazine.

[10]  Philip Levis,et al.  TinyOS Programming: Introduction , 2009 .

[11]  Radhika Nagpal Programmable self-assembly: constructing global shape using biologically-inspired local interactions and origami mathematics , 2001 .

[12]  James McLurkin,et al.  Protoswarm: a language for programming multi-robot systems using the amorphous medium abstraction , 2008, AAMAS.

[13]  David Chu,et al.  Entirely declarative sensor network systems , 2006, VLDB.

[14]  M. Welsh,et al.  The Regiment Macroprogramming System , 2007, 2007 6th International Symposium on Information Processing in Sensor Networks.

[15]  Jacob Beal,et al.  Infrastructure for engineered emergence on sensor/actuator networks , 2006, IEEE Intelligent Systems.

[16]  Ramesh Govindan,et al.  Reliable and efficient programming abstractions for wireless sensor networks , 2007, PLDI '07.

[17]  Seth Copen Goldstein,et al.  Distributed Localization of Modular Robot Ensembles , 2008, Robotics: Science and Systems.

[18]  David E. Culler,et al.  Hood: a neighborhood abstraction for sensor networks , 2004, MobiSys '04.

[19]  Wei Hong,et al.  TinyDB: an acquisitional query processing system for sensor networks , 2005, TODS.

[20]  Letizia Tanca,et al.  What you Always Wanted to Know About Datalog (And Never Dared to Ask) , 1989, IEEE Trans. Knowl. Data Eng..

[21]  Siddhartha S. Srinivasa,et al.  Generalizing metamodules to simplify planning in modular robotic systems , 2008, 2008 IEEE/RSJ International Conference on Intelligent Robots and Systems.