Here we provide some detailed information about the project FoMaSE (Foundations of Macroprogramming-based Software Engineering).
GOAL: 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)?
GAP: 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.
EXPECTED OUTPUTS: 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.
Term macro-programming was introduced in early 2000s in the context of programming paradigms for wireless sensor networks (WSN).
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:
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.
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.
For project FoMaSE papers, see the corresponding Publications page.