Macroprogramming: Concepts, State of the Art, and Opportunities of Macroscopic Behaviour Modelling

@article{Casadei2022MacroprogrammingCS,
  title={Macroprogramming: Concepts, State of the Art, and Opportunities of Macroscopic Behaviour Modelling},
  author={Roberto Casadei},
  journal={ACM Computing Surveys},
  year={2022},
  volume={55},
  pages={1 - 37},
  url={https://api.semanticscholar.org/CorpusID:245837830}
}
An integrated view of the field is provided, together with opportunities and challenges, to foster principled research and ensure conceptual consistency in macroprogramming.

Figures and Tables from this paper

Self-Organisation Programming: A Functional Reactive Macro Approach

A reactive self-organisation programming approach that enables to fully decouple the program logic from the scheduling of its sub-activities, while enabling significant improvements in terms of scheduling controllability, flexibility in the sensing/actuation model, and execution efficiency is proposed.

Declarative Macro-Programming of Collective Systems with Aggregate Computing: An Experience Report

This experience report analyzes aggregate computing through the lenses of declarative programming, and draws significant insights and perspectives related to the engineering of complex adaptive systems.

Towards Automated Engineering for Collective Adaptive Systems: Vision and Research Directions

This paper outlines novel research directions that arise from careful analysis of the peculiar issues in collective and self-organising systems, the cornerstones of effective software engineering practices, and recent scientific trends and insights.

On the Dynamic Evolution of Distributed Computational Aggregates

This paper builds on the field-based framework of aggregate processes, and extends it with techniques to support more expressive evolution dynamics, and proposes novel algorithms for more effective propagation and closure of the boundaries of dynamic aggregates.

Flexible Self-organisation for the Cloud-Edge Continuum: a Macro-programming Approach

This paper proposes a modularisation framework for splitting the macro-level system behaviour into components that can be flexibly and dynamically deployed on the available infrastructure, with two key features: collective components and a “forwarding” mechanism allowing offloading of components to neighbour devices while respecting constraints.

MacroSwarm: A Field-Based Compositional Framework for Swarm Programming

A new field-based coordination approach to design and program swarm behaviour in terms of reusable and fully composable functional blocks embedding collective computation and coordination, based on the macroprogramming paradigm of aggregate computing is proposed.

Machine Learning for Aggregate Computing: a Research Roadmap

To overcome the complexity and cost of manually tailoring or fixing algorithms, execution details, and deployments, it is proposed to use machine learning techniques, to automatically create policies for applications and their management.

Programming Distributed Collective Processes in the eXchange Calculus

This work proposes the abstraction of a distributed collective process, which can be used to define at once the ensemble formation logic and its collective task, and formalises the abstraction in the eXchange Calculus (XC), a core functional language where state and interaction is handled through a single primitive, exchange, and a corresponding implementation in the FCPP language.

Software Engineering for Collective Cyber-Physical Ecosystems

The motivations, state of the art and implications of this ‘collective computing paradigm’ in software engineering are explored, and its peculiar challenges are discussed, implied by characteristics like distribution, situatedness, large scale and cooperative nature.

Computation Against a Neighbour

The neighbours calculus (NC), a new field calculus variant which is shown to smoothly support declarative specification of interaction with neighbours, and correspondingly facilitate the embedding of field computations as internal DSLs in common general-purpose programming languages -- as exemplified by a Scala implementation, called ScaFi.

Protelis: practical aggregate programming

Protelis is introduced, a functional language based on computational fields and embedded in Java, thereby enabling the construction of widely reusable components of aggregate systems and demonstrating the simplicity of Protelis integration and programming.

FScaFi : A Core Calculus for Collective Adaptive Systems Programming

This paper presents FScaFi, a core language that captures the essence of exploiting field computations in mainstream functional languages, and which is based on a semantic model for computations leveraging the novel notion of “computation against a neighbour”.

Edinburgh Research Explorer Modelling and Analysis of Collective Adaptive Systems with CARMA and its Tools

This chapter presents C ARMA, a language recently defined to support specifi-cation and analysis of collective adaptive systems, and its tools developed for supporting system design and analysis.

Macroprogramming heterogeneous sensor networks using cosmos

An important and novel aspect of COSMOS is the ability to easily extend its component basis library to add rich macroprogramming abstractions to mPL, tailored to domain and resource constraints, without modifications to the OS.

D'Artagnan: An Embedded DSL Framework for Distributed Embedded Systems

D'Artagnan, is a functional macroprogramming language embedded in Haskell, hiding where possible low-level detail, but allowing the developer to add hints and information to enable more efficient compilation to different target architectures.

The Regiment Macroprogramming System

The design and implementation of the Regiment language and compiler are described, and the deglobalization process that compiles a network-wide representation of the program into a node-level, event-driven program is described.

MacroLab: a vector-based macroprogramming framework for cyber-physical systems

This work presents a macroprogramming framework called MacroLab that offers a vector programming abstraction similar to Matlab for Cyber-Physical Systems (CPSs) that introduces almost no additional overhead over TinyOS programs.

PyoT, a macroprogramming framework for the Internet of Things

PyoT is presented, a framework designed to simplify the development of complex applications for the Internet of Things, coordinating the activities of group of nodes, adopting the macroprogramming paradigm.
...