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.
Macroprogramming: Concepts, State of the Art, and Opportunities of Macroscopic Behaviour Modelling
Software Engineering for Collective Cyber-Physical Ecosystems
Artificial Collective Intelligence Engineering: A Survey of Concepts and Perspectives
MacroSwarm: A Field-based Compositional Framework for Swarm Programming
Flexible Self-organisation for the Cloud-Edge Continuum: a Macro-programming Approach
Declarative Macro-Programming of Collective Systems with Aggregate Computing: An Experience Report
Self-Organisation Programming: A Functional Reactive Macro Approach
Region streams: functional macroprogramming for sensor networks
Artificial Societies: Multiagent Systems and the Micro-Macro Link in Sociological Theory