Proto: The Language of Space/Time
Proto is a language that makes it easy to write complex programs for spatial computers, and MIT Proto is an implementation of that language, currently primarily maintained at BBN Technologies.
A spatial computer is a collection of devices distributed to fill space, where the difficulty of communicating between devices is strongly dependent on their geometric distance. Examples include sensor networks, robotic swarms, cells during morphogenesis, FPGAs, ad-hoc wireless systems, biofilms, and distributed control systems.
Proto is a language for programming spatial computers using a continuous space abstraction. Rather than describe the behavior of individual devices, the programmer views the space filled by the devices as an amorphous medium---a region of continuous space with a computing device at every point---and describes the behavior of regions of space. These programs are automatically transformed into local actions that are executed approximately by the actual network of devices. When the program obeys the abstraction, these local actions reliably produce an approximation of the desired aggregate behavior.
MIT Proto is our implementation of Proto, comprising a compiler, cross-platform virtual machine, simulator, code libraries, and tutorial material. MIT Proto is free, open-source software, licensed such that it can be used to create either free or proprietary projects.
MIT Proto has already been run on several platforms: Mica2 Motes, McLurkin's SwarmBots, the Topobo modular robotics platform, and Merakis on an iRobot Create robotic base (though the kernel implementations for most of these platforms are not included the current release).
Manuals, tutorials, and other documentation for MIT Proto are included in the distribution.