Space – time programming Jacob Beal 1 and
نویسنده
چکیده
and call functions Figure 5. Field calculus is a minimal syntax and semantics for construction of aggregate programs with a coherent mapping from aggregate syntax to local syntax. (Online version in colour.) 4. Foundation: field calculus Field calculus [19] provides a theoretical foundation for aggregate programming, grounding on the idea of computing by functional manipulation of computational fields. Its aim is to provide a universal model that is terse enough for mathematical proofs of general properties about aggregate programming and the aggregate/local relationship, just as λ-calculus [36] provides for functional programming, π -calculus for parallel programming [37] or Featherweight Java [38] for object-oriented programming. (a) Syntax and semantics of field calculus Field calculus [19] is a minimal expressive model for computation with fields, developed by refining the set of key operations in the wide range of domain-specific languages for space–time computation surveyed in [1] to find a small covering set. From this survey, it was decided to base field calculus on Proto [34], which is one of the few current general purpose space–time programming languages and which has quite general capabilities. Proto, however, has far too complicated a syntax and semantics (as developed in [39]) and is not practical for mathematical analysis. Field calculus was thus developed by finding a minimal set of operations that, with appropriate syntactic sugar, could cover all of Proto as well as certain capabilities not supported by Proto but supported by other languages. As might be expected from its name, the value of any field calculus expression is a computational field φ, mapping from a potentially time-varying domain of devices to a value for each device at each point in time. From this very consideration, one derives that such an aggregate-level interpretation, which we shall follow in the remainder of this paper, is an improvement and extension over the classical pointwise interpretation of distributed system programming, in which the focus is still on the single device (in a given position of space) computing a single value (at a given time). Fields are computed and manipulated according to the functional (Lisp-like) syntax shown in figure 5 (overbar notation denotes sequences, e.g. ē stands for e1 . . .en with n ≥ 0). Fields may either be literal data values (e.g. 5, ‘username’) representing constant-valued fields over their domain, or else expressions that combine fields using five types of operation. The first two of these are generic, appearing in any functional programming language, while the other three (illustrated in figure 6) are special constructs for support of aggregate programming: — Built-in operators are a collection of primitive operations (symbol b) taking in zero or more input fields and functionally computing an output field. Most specifically, the value of the resulting field at a device is the result of applying the built-in operator to the inputs at the same device. For example, multiplication of two numerical fields φ1 and φ2 yields a field φ mapping each device in space–time to v1 ∗ v2, where v1 and v2 are the values to which φ1 on September 15, 2017 http://rsta.royalsocietypublishing.org/ Downloaded from
منابع مشابه
Unconventional Programming
ions for Directing Self-Organising Patterns . . . . . . . . . . . . . . . . . . . . 70Daniel Coore Abstractions for Code Reuse in ECOLI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79Dean D. Holnessions for Code Reuse in ECOLI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79Dean D. Holness Programming an Amorphous Computational Medium . . . . . . . . . ....
متن کاملSpace-time programming.
Computation increasingly takes place not on an individual device, but distributed throughout a material or environment, whether it be a silicon surface, a network of wireless devices, a collection of biological cells or a programmable material. Emerging programming models embrace this reality and provide abstractions inspired by physics, such as computational fields, that allow such systems to ...
متن کاملProgramming Manifolds
Many programming domains involve the manipulation of values distributed through a manifold— examples include sensor networks, smart materials, and biofilms. This paper describes a programming semantics for manifolds based on the amorphous medium abstraction, which places a computational device at every point in the manifold. This abstraction enables the creation of programs that automatically s...
متن کاملTowards a Unified Model of Spatial Computing
In spatial computing, there is a fundamental tension between discrete and continuous models of computation: computational devices are generally discrete, yet it is often useful to program them in terms of the continuous environment through which they are embedded. Aggregate programming models for spatial computers have attempted to resolve this tension in a variety of different ways, generating...
متن کاملLinda in Space-Time: An Adaptive Coordination Model for Mobile Ad-Hoc Environments
We present a vision of distributed system coordination as a set of activities affecting the space-time fabric of interaction events. In the tuple space setting that we consider, coordination amounts to control of the spatial and temporal configuration of tuples spread across the network, which in turn drives the behaviour of situated agents. We therefore draw on prior work in spatial computing ...
متن کاملHow can AI help Synthetic Biology?
Presenter: Fusun Yaman or Aaron Adler from BBN Technologies. The synthetic biology work highlighted in this talk was done by the presenters, Dr. Jacob Beal at BBN, and collaborators at MIT and BU. Contributions from others in the field will also be highlighted as referenced in the citations below.
متن کامل