Organizing the Aggregate: Languages for Spatial Computing
As the number of computing devices embedded into engineered systems continues to rise, there is a widening gap between the needs of the user to control aggregates of devices and the complex technology of individual devices. Spatial computing attempts to bridge this gap for systems with local communication by exploiting the connection between physical locality and device connectivity. A large number of spatial computing domain specific languages (DSLs) have emerged across diverse domains, from biology and reconfigurable computing, to sensor networks and agent-based systems. In this chapter, we develop a framework for analyzing and comparing spatial computing DSLs, survey the current state of the art, and provide a roadmap for future spatial computing DSL investigation.
💡 Research Summary
The chapter addresses the widening gap between the growing number of embedded devices in engineered systems and the user’s desire to control them as coherent aggregates. It introduces “spatial computing” as a paradigm that exploits the intrinsic link between physical locality and network connectivity to enable high‑level, declarative programming of device ensembles. The authors first define a multi‑dimensional evaluation framework for spatial computing domain‑specific languages (DSLs). The framework consists of five axes: (1) abstraction level (low‑level hardware control versus high‑level behavior declaration), (2) communication model (synchronous vs asynchronous, broadcast vs multicast, locality‑aware vs global), (3) programming paradigm (functional, declarative, rule‑based, agent‑oriented), (4) execution timing (simulation‑only, real deployment, hybrid), and (5) scalability and fault‑tolerance mechanisms (support for thousands of nodes, error detection, dynamic reconfiguration).
Using this framework, the chapter surveys DSLs that have emerged in four major domains. In the biological modeling domain, languages such as P‑Systems, Bio‑PEPA, and Cell‑DSL model chemical reactions, diffusion, and cell signaling with continuous mathematics. They excel at expressing natural processes but often lack real‑time execution and power‑aware constraints. Reconfigurable hardware DSLs (e.g., FPGA‑DSL, Chisel, Spatial) provide precise timing and power control, yet require designers to manage physical placement and electromagnetic constraints directly. Sensor‑network and IoT DSLs (Regiment, TinyDB, Kairos, MacroLab) focus on locality‑based data aggregation, event‑driven queries, and low‑power wireless communication, making them suitable for large‑scale deployments but limited in expressing complex rule‑based behaviors. Agent‑based simulation languages (NetLogo, MASON, Repast, GAMA) model individual agents with spatial positions and interaction rules, offering rich behavioral expressiveness but suffering from performance bottlenecks when scaled to thousands of physical devices.
A central contribution of the chapter is the notion of “spatial operators.” These are built‑in primitives that directly encode distance‑related actions such as NeighborhoodBroadcast, RegionAggregate, and DistanceWeightedRouting. By exposing spatial operators at the language level, programmers avoid writing low‑level messaging code, and compilers can map these operators to optimized routing, power‑management, and scheduling policies. The authors show how each surveyed DSL implements a subset of spatial operators, highlighting trade‑offs: biological DSLs provide rich operators but are often simulation‑only; sensor‑network DSLs implement efficient broadcast primitives but lack sophisticated rule engines; hardware DSLs expose precise timing operators but require manual layout.
The final section outlines a roadmap for future research. First, the development of meta‑DSLs that can integrate multiple domain‑specific languages, enabling cross‑domain applications (e.g., combining biological reaction models with sensor‑network data collection). Second, the creation of compilers and runtime systems that perform automatic optimization and dynamic reconfiguration, adapting spatial operator implementations to changing network topologies and workload characteristics. Third, the incorporation of security and privacy policies that are aware of physical location, allowing declarative specification of access control and data flow constraints. Fourth, the establishment of standard specifications for spatial operators to promote interoperability among heterogeneous platforms.
In conclusion, the chapter provides a systematic analysis of the current state of spatial computing DSLs, identifies the strengths and weaknesses of each class of languages, and proposes concrete directions for advancing the field. By bridging the gap between user‑level intent and device‑level realities, spatial computing DSLs have the potential to enable truly user‑centric control of large, heterogeneous aggregates of embedded devices.