Project Details

Here we provide some detailed information about the project FoMaSE (Foundations of Macroprogramming-based Software Engineering).

Table of Contents

FoMaSE Project Abstract

The Foundations for Macro-programming-based Software Engineering (FoMaSE) basic research project aims to address the long-standing micro-macro link problem by the computer science and software engineering (SE) viewpoints: how to effectively engineer the software driving the micro-level computational parts of a system so that these collectively produce the designer’s intended macro-level behaviour (and how that intention could be specified)? On this, previous research on multi-agent (MAS) and collective adaptive systems (CAS) showed that domain-specific paradigms and “macro-level” abstractions (e.g., organisational, choreographical, and aggregate programming) can support analysis and development of software driving, e.g., robot swarms and Internet of Things systems. What is missing is a general theoretical and methodological framework for “macro-programming”, able to connect source code and computations to fundamental scientific principles on emergence, coarse-graining, and multi-scale dynamics, and to support systematic design of the micro-macro link. Concurrently, artificial intelligence (AI)-based methods like multi-agent reinforcement and evolutionary learning, often used for automatic design of swarm controllers, tend to suffer from issues like those on scalability, interpretability, and reward/fitness design. FoMaSE aims to fill these crucial gaps, by linking recent insights from physics on the discovery of emergent phenomena to the realm of programming languages and SE, and exploiting coarse-grained “macro-programs” to mitigate issues in AI-based design. Specifically, FoMaSE aims to provide: (i) novel formalisations of collective computation and macro-programming; (ii) innovative scalable methods for testing and analysis of software systems exhibiting emergent multi-scale dynamics; (iii) integrative macro-programming languages and hybrid AI-based methods supporting understanding, development, interpretability, and validation of the target micro-macro link. Conceptual and methodological tools emerging from FoMaSE are expected to open new research directions on “software engineering for multi-scale dynamics and artificial collective intelligence”, fostering a virtuous cross-disciplinary synergy among SE, computer, and complex systems science.

History and background

Term macro-programming was introduced in early 2000s in the context of programming paradigms for wireless sensor networks (WSN).

In basically all the research papers, term macro-programming was always introduced informally and in limited extent.
By a terminological perspective, macro-programming appears to recall “macros” (the technique for symbolic substitution in programs); however, it actually refers to “macroscopic”.

The notion was never addressed directly and in explicitly terms, until two surveys that emerged in 2021/2022, one of which from the FoMaSE principal investigator:

Conceptually, macro-programming is related to (at least) three broad areas:

  • multi-agent systems (MAS), including normative MAS, organisational paradigms, holonic MAS, etc.
  • distributed systems, including service computing (e.g., choreographies), WSNs, etc.
  • collective adaptive systems (CAS), including self-organisation/swarm programming, aggregate computing (cf. spatial computing, amorphous computing)
The micro-macro link is a long-standing issue in MAS research, as well as in “complexity science” threads (e.g., study of emergent phenomena).

However, the idea of macro-programming is more specific than what you normally find in those areas. In some way, the idea is of programming the overall collective behaviour of a computational system (possibly distributed) using denotations of macroscopic entities or outcomes. So, conceptually, the entire distributed computational ensemble is the “single machine” that you program against.

Macro-programming appears to entail a macro-to-micro directionality: the program talks about macroscopic aspects, and micro-level behaviour is induced in turn.

What are the benefits of macro-programming? Intuitively, you get a simplified, coarse-grained description of a collective behaviour. Of course, when talking about Turing-equivalent programming paradigms, it is a matter of practical expressiveness and the benefits related to program understanding, maintainability, and so on.

Selected Bibliography

For project FoMaSE papers, see the corresponding Publications page.

Main papers

Recent papers

(2024). Flexible Self-organisation for the Cloud-Edge Continuum: a Macro-programming Approach. IEEE International Conference on Autonomic Computing and Self-Organizing Systems, ACSOS 2024, Aarhus, Denmark, Sep 16-20, 2024.

Cite DOI

(2024). Declarative Macro-Programming of Collective Systems with Aggregate Computing: An Experience Report. Proceedings of the 26th International Symposium on Principles and Practice of Declarative Programming.

Cite DOI

(2023). Self-Organisation Programming: A Functional Reactive Macro Approach. 2023 IEEE International Conference on Autonomic Computing and Self-Organizing Systems (ACSOS).

Cite DOI

Historical papers

(2004). Region streams: functional macroprogramming for sensor networks. Proceedings of the 1st Workshop on Data Management for Sensor Networks, in conjunction with VLDB, DMSN 2004, Toronto, Canada, August 30, 2004.

Cite DOI URL