Term | Description | Association |
Aggregate Program | Specification for a collective behavior that needs to be achieved. | Language |
Computational Field | A field is a collective structure that maps each device in some portion of the network to locally computed values over time. | Field Calculus |
Field Calculus | A programming model in which computational fields are first-class entities. | Computational Field |
VM | A Virtual Machine for the execution of an aggregate program. | Aggregate Program, Round |
Round | Correspond to a local computation in a device. Create the context, evaluate the aggregate program and share the exports to the neighborhood. | VM |
Environment | An abstraction for the real world. | Sensor, Context |
Context | An abstraction for the local computation's input. It contains the neighbors' exports, the local status of the device and the results of the previous round. | Export |
Export | A tree-like data structure that contains all the information needed for coordinating with neighbors and the output of the computation. | AST |
Network | A network of heterogeneous devices that act as a collective. | Device |
Device | A singular entity that executes the aggregate program. Also called: nodes or agents. | neighbor |
Neighboring | A relation between devices that communicate directly. | Device |
Sensor | A physical or virtual component that allows the device to interact with the environment. | Environment, Sense |
Abstract Syntax Tree | A data-oriented representation used by ScaFi to represent the aggregate program structure. | Path, Slot |
Path | Sequence of slots, corresponding to a branch of the AST. | Abstract Syntax Tree, Slot |
Slot | A representation for a construct of the language. | Path |
Language | The collection of basic constructs. | Nbr, Rep, Foldhood, Branch, Exchange |
Nbr | It observes the value of an expression across neighbors, producing a “field of fields”. | Language |
Rep | It iteratively updates the value of the input expression at each device using the last computed value. | Language |
Foldhood | Aggregates the results of the neighbor computation. | Language |
Branch | Partition the domain into two subspaces that do not interact with each other. | Language |
Alignment | Two devices are said to be aligned if they have evaluated the same expression and belong to the same domain. |
Local ID | It is the ID of the local device. | Device, Language |
Sense | Return the value of a local sensor. | Sensor, Device |
Exchange | The exchange construct handles neighbor-to-neighbor propagation of partial accumulates. | Language | </tr>
Share | captures the space-time nature of field computation through observation of neighbors’ values, reduction to a single local value and updating and sharing to neighbors of a local variable | |
</table>