On the Evaluation of Space-Time Functions

The Proto spatial programming language abstracts the distributed execution of programs as evaluation of space-time functions over dynamically defined subspaces on a manifold. Previously, however, function evaluation has always been defined in terms of a complete in lining of expressions during compilation. This simplified the definition of programs, at the cost of limiting expressiveness and duplicating code in compiled binaries. In this paper, we address these shortcomings, producing a model of in-place function evaluation and analysis of its implications for Proto. We have extended the MIT Proto compiler and Proto Kernel virtual machine to implement this model, and empirically verified the reduction of compiled binary size.

[1]  Ryan Newton,et al.  Region streams: functional macroprogramming for sensor networks , 2004, DMSN '04.

[2]  Shlomi Dolev,et al.  Self-Stabilizing and Self-Organizing Virtual Infrastructures for Mobile Networks , 2011, Theoretical Aspects of Distributed Computing in Sensor Networks.

[3]  James Aspnes,et al.  An Introduction to Population Protocols , 2007, Bull. EATCS.

[4]  Thomas J. Naughton,et al.  An optical model of computation , 2005, Theor. Comput. Sci..

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

[6]  Jacob Beal,et al.  Continuous Space-Time Semantics Allow Adaptive Program Execution , 2007, First International Conference on Self-Adaptive and Self-Organizing Systems (SASO 2007).

[7]  Nancy A. Lynch,et al.  Distributed Algorithms , 1992, Lecture Notes in Computer Science.

[8]  Jacob Beal,et al.  Building Spatial Computers , 2007 .

[9]  Jacob Beal,et al.  An agent framework for agent societies , 2011, SPLASH Workshops.

[10]  Jean-Louis Giavitto,et al.  Computations in Space and Space in Computations , 2004, UPP.

[11]  Nancy A. Lynch,et al.  Virtual Mobile Nodes for Mobile Ad Hoc Networks , 2004, DISC.

[12]  Philip S. Yu,et al.  Dynamic Load Balancing on Web-Server Systems , 1999, IEEE Internet Comput..

[13]  Reza Olfati-Saber,et al.  Consensus and Cooperation in Networked Multi-Agent Systems , 2007, Proceedings of the IEEE.

[14]  Jacob Beal,et al.  Organizing the Aggregate: Languages for Spatial Computing , 2012, ArXiv.

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

[16]  Jacob Beal,et al.  Core operational semantics of Proto , 2011, SAC '11.

[17]  Bruce J. MacLennan,et al.  Continuous Spatial Automata , 1990 .

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

[19]  Jacob Beal Dynamically Defined Processes for Spatial Computers , 2010, 2010 Fourth IEEE International Conference on Self-Adaptive and Self-Organizing Systems Workshop.

[20]  Olivier Michel,et al.  Computational models for integrative and developmental biology , 2002 .

[21]  David R. Karger,et al.  Chord: A scalable peer-to-peer lookup service for internet applications , 2001, SIGCOMM '01.

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

[23]  Sanjay Ghemawat,et al.  MapReduce: Simplified Data Processing on Large Clusters , 2004, OSDI.

[24]  Franco Zambonelli,et al.  Programming pervasive and mobile computing applications: The TOTA approach , 2009, TSEM.