Mirko Viroli

dblp:v/MirkoViroli · DBLP profile ↗
← Back
107ranked-venue papers
19as first author
41since 2021 · last 2026
0000-0003-2702-5702ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 38 · 7 first-author · 10 since 2021Artificial intelligence and machine learning · 16 · 3 first-author · 4 since 2021Theory of computation · 10 · 1 first-author · 7 since 2021Systems, architecture and hardware · 8 · 2 first-author · 3 since 2021Computer networks · 5 · 2 since 2021Applied, interdisciplinary, general and emerging computing · 5 · 2 first-author · 1 since 2021Databases, data management, data science and information retrieval · 2 · 1 first-authorHuman-computer interaction and ubiquitous computing · 2 · 1 since 2021Graphics, computer vision, multimedia, augmented reality and games · 1 · 1 since 2021
YearPublicationVenuePosition
2026 HarmoniKt: a Unifying Middleware for Heterogeneous Robot Fleets
abstract
In recent years, companies have increasingly invested in Industry 4.0 research to automate repetitive tasks or activities that may be harmful to humans. For instance, large-scale warehouses, such as those operated by Amazon, rely heavily on mobile robots to streamline logistics operations and ensure worker safety. At the same time, robot manufacturers are releasing more reliable platforms with advanced capabilities, making them suitable for complex industrial tasks. Despite this growing interest and technological progress, significant challenges remain. A key and non-trivial issue lies in the integration of heterogeneous robot fleets: each vendor typically employs proprietary technologies and interfaces, which hinders interoperability and limits the potential of multi-brand deployments.In this work, we introduce HarmoniKt, an extensible middle-ware that addresses this challenge by introducing an abstraction layer and providing a unified REST API for the control and management of heterogeneous robots. Our solution has been validated in a physical industrial-like environment using a mixed fleet of Boston Dynamics Spot and Mobile Industrial Robots (MiR). Furthermore, we present a comparative analysis showing that the access latency introduced by our middleware is not significantly higher than that of direct robot access, demonstrating the feasibility of unified robot management without compromising performance.
Manuel Andruccioli, Angela Cortecchia, Davide Domini, Nicolas Farabegoli, Giovanni Delnevo, Danilo Pianini, Riccardo Venanzi, Mirko Viroli
CCNC8
2026 Phyelds: A Pythonic Framework for Aggregate Computing
Gianluca Aguzzi, Davide Domini, Nicolas Farabegoli, Mirko Viroli
COORDINATION4
2026 A Self-stabilizing Min-Max Consensus via Path-Loop Detection
Angela Cortecchia, Danilo Pianini, Mirko Viroli
COORDINATION3
2026 ScalaTropy: Multiparty Coordination with Monadic Communication Primitives
Nicolas Farabegoli, Luca Tassinari, Gianluca Aguzzi, Mirko Viroli
COORDINATION4
2026 Heterogeneous GNN for collective-task offloading in cloud-edge via deep Q-learning
abstract
Task offloading in edge-cloud computing systems requires determining optimal allocation of application components across heterogeneous infrastructure while balancing multiple objectives, like energy consumption, latency, or cost. This problem becomes particularly complex in large-scale deployments (e.g., smart cities, industrial IoT) where existing approaches fail to address collective phenomena, namely emergent system-wide behaviors like network congestion that arise from multi-device interactions, leading to suboptimal offloading decisions in large-scale deployments. To address these challenges this paper introduces a multi-agent learning framework for collective component offloading that decomposes applications into a directed acyclic graph of macro-components, enabling partial offloading where individual components can be selectively executed locally or migrated to edge/cloud servers. Our system model represents the infrastructure as a heterogeneous graph of application devices and infrastructure nodes, supporting decentralized offloading decisions while maintaining component interdependencies. In particular, we propose Informed Deep Hetero Graph Q-Learning (IDHGQL), which combines: (1) Heterogeneous Graph Neural Networks (HeteroGNNs) for policy representation that naturally handle diverse device types and relationships; (2) Aggregate computing to enrich device observations with collective system state information; and (3) a multi-agent Deep Q-Learning algorithm based on centralized training with decentralized execution that balances individual constraints with emergent collective phenomena. Experimental evaluation demonstrates IDHGQL’s effectiveness in multi-objective optimization scenarios, successfully learning policies that balance battery consumption, latency, and infrastructure costs. In density-aware scenarios, agents learn spatially-adaptive strategies that dynamically adjust offloading decisions based on local congestion: favoring local execution in high-density areas to avoid network bottlenecks while leveraging edge/cloud resources in sparse regions. Ablation studies confirm that collective information integration is essential for learning such context-aware policies, with IDHGQL consistently outperforming static baselines across all evaluated metrics.
Nicolas Farabegoli, Davide Domini, Gianluca Aguzzi, Mirko Viroli
Future Gener. Comput. Syst.4
2026 FBFL: A Field-Based Coordination Approach for Data Heterogeneity in Federated Learning
abstract
In the last years, Federated learning (FL) has become a popular solution to train machine learning models in domains with high privacy concerns. However, FL scalability and performance face significant challenges in real-world deployments where data across devices are non-independently and identically distributed (non-IID). The heterogeneity in data distribution frequently arises from spatial distribution of devices, leading to degraded model performance in the absence of proper handling. Additionally, FL typical reliance on centralized architectures introduces bottlenecks and single-point-of-failure risks, particularly problematic at scale or in dynamic environments. To close this gap, we propose Field-Based Federated Learning (FBFL), a novel approach leveraging macroprogramming and field coordination to address these limitations through: (i) distributed spatial-based leader election for personalization to mitigate non-IID data challenges; and (ii) construction of a self-organizing, hierarchical architecture using advanced macroprogramming patterns. Moreover, FBFL not only overcomes the aforementioned limitations, but also enables the development of more specialized models tailored to the specific data distribution in each subregion. This paper formalizes FBFL and evaluates it extensively using MNIST, FashionMNIST, and Extended MNIST datasets. We demonstrate that, when operating under IID data conditions, FBFL performs comparably to the widely-used FedAvg algorithm. Furthermore, in challenging non-IID scenarios, FBFL not only outperforms FedAvg but also surpasses other state-of-the-art methods, namely FedProx and Scaffold, which have been specifically designed to address non-IID data distributions. Additionally, we showcase the resilience of FBFL's self-organizing hierarchical architecture against server failures.
Davide Domini, Gianluca Aguzzi, Lukas Esterle, Mirko Viroli
Log. Methods Comput. Sci.4
2026 Low-code design of collective systems with ScaFi-Blocks
Gianluca Aguzzi, Matteo Cerioni, Mirko Viroli
Sci. Comput. Program.3
2025 A Fine-Tuning Pipeline with Small Conversational Data for Healthcare Chatbot
Gianluca Aguzzi, Matteo Magnini, Martino F. Pengo, Mirko Viroli, Sara Montagna
AIME (2)4
2025 A Demonstrator for Self-organizing Robot Teams
Gianluca Aguzzi, Lorenzo Bacchini, Martina Baiardi, Roberto Casadei, Angela Cortecchia, Davide Domini, Nicolas Farabegoli, Danilo Pianini, Mirko Viroli
COORDINATION9
2025 Declarative Deployment Planning for Green Pulverised Collective Computational Systems
Antonio Brogi, Roberto Casadei, Nicolas Farabegoli, Stefano Forti 0002, Mirko Viroli
COORDINATION5
2025 SHAC++: A Neural Network to Rule All Differentiable Simulators
abstract
Reinforcement learning (RL) algorithms show promise in robotics and multi-agent systems but often suffer from low sample efficiency. While methods like SHAC leverage differentiable simulators to improve efficiency, they are limited to specific settings: they require fully differentiable environments, including transition and reward functions, and have primarily been demonstrated in single-agent scenarios. To overcome these limitations, we introduce SHAC++, a novel framework inspired by SHAC. SHAC++ removes the need for differentiable simulator components by using neural networks to approximate the required gradients, training these networks alongside the standard policy and value networks. This enables the core SHAC approach to be applied in both non-differentiable and multi-agent environments. We evaluate SHAC++ on challenging multi-agent tasks from the VMAS suite, comparing it against SHAC (where applicable) and PPO, a standard algorithm for non-differentiable settings. Our results demonstrate that SHAC++ significantly outperforms PPO in both single- and multi-agent scenarios. Furthermore, in differentiable environments where SHAC operates, SHAC++ achieves comparable performance despite lacking direct access to simulator gradients, thus successfully extending SHACs benefits to a broader class of problems. The full implementation is openly available at https://github.com/f14-bertolotti/shacpp.
Francesco Bertolotti, Gianluca Aguzzi, Walter Cazzola, Mirko Viroli
ECAI4
2025 Sparse Self-Federated Learning for Energy Efficient Cooperative Intelligence in Society 5.0
abstract
Federated Learning offers privacy-preserving collaborative intelligence but struggles to meet the sustainability demands of emerging IoT ecosystems necessary for Society 5.0—a human-centered technological future balancing social advancement with environmental responsibility. The excessive communication bandwidth and computational resources required by traditional FL approaches make them environmentally unsustainable at scale, creating a fundamental conflict with green AI principles as billions of resource-constrained devices attempt to participate. To this end, we introduce Sparse Proximity-based Self-Federated Learning (SParSeFuL), a resource-aware approach that bridges this gap by combining aggregate computing for self-organization with neural network sparsification to reduce energy and bandwidth consumption.
Davide Domini, Laura Erhan, Gianluca Aguzzi, Lucia Cavallaro, Amirhossein Douzandeh Zenoozi, Antonio Liotta, Mirko Viroli
IJCNN7
2025 MacroSwarm: A Field-based Compositional Framework for Swarm Programming
abstract
Swarm behaviour engineering is an area of research that seeks to investigate methods and techniques for coordinating computation and action within groups of simple agents to achieve complex global goals like pattern formation, collective movement, clustering, and distributed sensing. Despite recent progress in the analysis and engineering of swarms (of drones, robots, vehicles), there is still a need for general design and implementation methods and tools that can be used to define complex swarm behaviour in a principled way. To contribute to this quest, this article proposes a new field-based coordination approach, called MacroSwarm, 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, MacroSwarm builds on the idea of expressing each swarm behaviour block as a pure function, mapping sensing fields into actuation goal fields, e.g., including movement vectors. In order to demonstrate the expressiveness, compositionality, and practicality of MacroSwarm as a framework for swarm programming, we perform a variety of simulations covering common patterns of flocking, pattern formation, and collective decision-making. The implications of the inherent self-stabilisation properties of field-based computations in MacroSwarm are discussed, which formally guarantee some resilience properties and guided the design of the library.
Gianluca Aguzzi, Roberto Casadei, Mirko Viroli
Log. Methods Comput. Sci.3
2025 Programming Distributed Collective Processes in the eXchange Calculus
abstract
Recent trends like the Internet of Things (IoT) suggest a vision of dense and multi-scale deployments of computing devices in nearly all kinds of environments. A prominent engineering challenge revolves around programming the collective adaptive behaviour of such computational ecosystems. This requires abstractions able to capture concepts like ensembles (dynamic groups of cooperating devices) and collective tasks (joint activities carried out by ensembles). In this work, we consider collections of devices interacting with neighbours and that execute in nearly-synchronised sense-compute-interact rounds, where the computation is given by a single program mapping sensing values and incoming messages to output and outcoming messages. To support programming whole computational collectives, we propose the abstraction of a distributed collective process, which can be used to define at once the ensemble formation logic and its collective task. We formalise the abstraction in the eXchange Calculus (XC), a core functional language based on neighbouring values (maps from neighbours to values) where state and interaction is handled through a single primitive, exchange, and provide a corresponding implementation in the FCPP language. Then, we exercise distributed collective processes using two case studies: multi-hop message propagation and distributed monitoring of spatial properties. Finally, we discuss the features of the abstraction and its suitability for different kinds of distributed computing applications.
Giorgio Audrito, Roberto Casadei, Ferruccio Damiani, Gianluca Torta, Mirko Viroli
Log. Methods Comput. Sci.5
2025 MacroSwarm: A scala framework for swarm programming
Gianluca Aguzzi, Mirko Viroli
Sci. Comput. Program.2
2025 A Language-based Approach to Macroprogramming for IoT Systems through Large Language Models
abstract
Large language models (LLMs) have transformed software engineering, particularly in code generation, where they assist developers in writing functions or entire programs. However, code generation remains challenging when the target domain is complex, as is the case with Internet of Things (IoT) systems. The challenge lies in capturing the entire system behavior within a single specification. developers often model only a subset of the system’s functionality, focusing primarily on individual device behavior or data processing aspects, which may not address the core challenges of IoT, such as large-scale distributed coordination and emergent behavior. To address this, macroprogramming paradigms have been proposed as a means to specify the collective behavior of IoT systems more holistically. Among these approaches, aggregate computing stands out for its ability to express system-wide properties through a top-down, global-to-local perspective. Despite its potential, the adoption of aggregate computing remains limited due to the complexity of writing and maintaining such programs. To overcome these barriers, we propose a language-based approach based on macroprogramming that leverages LLMs for IoT code generation. Specifically, we employ the in-context learning capabilities of LLMs, guiding them to generate code based on an aggregate computing abstraction. This creates code that reflects system-wide properties and frees programmers from writing low-level code by letting them specify desired global properties in natural language. The LLM then translates these specifications into executable code, thus facilitating the development of collective intelligence applications in IoT systems.
Gianluca Aguzzi, Nicolas Farabegoli, Mirko Viroli
ACM Trans. Internet Things3
2025 Software Engineering for Collective Cyber-Physical Ecosystems
abstract
Today’s distributed and pervasive computing addresses large-scale cyber-physical ecosystems, characterised by dense and large networks of devices capable of computation, communication and interaction with the environment and people. While most research focuses on treating these systems as ‘composites’ (i.e., heterogeneous functional complexes), recent developments in fields such as self-organising systems and swarm robotics have opened up a complementary perspective: treating systems as ‘collectives’ (i.e., uniform, collaborative and self-organising groups of entities). This article explores the motivations, state of the art and implications of this ‘collective computing paradigm’ in software engineering. In particular, it discusses its peculiar challenges, implied by characteristics like distribution, situatedness, large scale and cooperative nature. These challenges outline significant directions for future research in software engineering, touching on aspects such as macro-programming, collective intelligence, self-adaptive middleware, learning/synthesis of collective behaviour, human involvement, safety and security in collective cyber-physical ecosystems.
Roberto Casadei, Gianluca Aguzzi, Giorgio Audrito, Ferruccio Damiani, Danilo Pianini, Giordano Scarso, Gianluca Torta, Mirko Viroli
ACM Trans. Softw. Eng. Methodol.8
2024 ScaFi-Blocks: A Visual Aggregate Programming Environment for Low-Code Swarm Design
Gianluca Aguzzi, Roberto Casadei, Matteo Cerioni, Mirko Viroli
COORDINATION4
2024 Field-Based Coordination for Federated Learning
Davide Domini, Gianluca Aguzzi, Lukas Esterle, Mirko Viroli
COORDINATION4
2024 A Reusable Simulation Pipeline for Many-Agent Reinforcement Learning
abstract
Recent advancements in multi-agent reinforcement learning led to systems in which large groups of agents work together to learn shared policies and achieve collective behavior. This approach is increasingly important for many applications, including swarm robotics, crowd sensing, and large-scale IoT networks. In fact, these systems require repeated experimentation to learn from experience: simulation becomes thus essential, as deploying and testing in real-world environments incurs in high costs and practical challenges. In response to this need, our paper introduces a simulation-based pipeline to gather the necessary experience for many-agent learning. We highlight the requirements of such pipeline and the role of simulation, presenting also a practical prototype implemented in Alchemist, a simulator designed for very large-scale systems. This pipeline provides a scalable, modular, and flexible environment for developing and testing many-agent reinforcement learning strategies.
Davide Domini, Gianluca Aguzzi, Danilo Pianini, Mirko Viroli
DS-RT4
2024 Declarative Macro-Programming of Collective Systems with Aggregate Computing: An Experience Report
abstract
Massive deployments of devices across all kinds of environments pose the need for engineering their collaborative, macro-level behaviour. To address this challenge, so-called macro-programming approaches have emerged. A prominent nature-inspired example of macro-programming is aggregate computing. In aggregate computing, macroscopic and self-organising behaviour is declared as a functional manipulation of computational fields. Fields are macro-level abstractions mapping devices to values over time, whose computation details, typically based on an execution model of asynchronous sense–compute–interact rounds, are abstracted. In more than ten years of research, multiple software engineering concerns in aggregate computing systems have been investigated, addressing aspects at the level of the language, execution dynamics, middleware, and deployment. Arguably, the enabling factor for many of such investigations and results is precisely the declarative nature of the aggregate computing paradigm. In this experience report, we analyse aggregate computing through the lenses of declarative programming, and draw significant insights and perspectives related to the engineering of complex adaptive systems.
Roberto Casadei, Mirko Viroli
PPDP2
2024 Scalability through Pulverisation: Declarative deployment reconfiguration at runtime
abstract
In recent years, the infrastructure supporting the execution of situated distributed computations evolved at a fast pace. Modern collective adaptive applications – as found in the Internet of Things, swarm robotics, and social computing – are designed to be executed on very diverse devices and to be deployed on infrastructures composed of devices ranging from cloud servers to wearable devices, constituting together a cloud–edge continuum. The availability of such an infrastructure opens to better resource utilisation and performance but, at the same time, introduces new challenges to software designers, as applications must be conceived to be able to adapt to changing deployment domains and conditions. In this paper, we introduce a practical framework for the development of systems based on the concept of pulverisation, meant to neatly separate business logic and deployment concerns, allowing applications to be defined independently of the infrastructure they will execute upon, thus supporting scalability. The framework is based on a domain-specific language capturing, in a declarative fashion: pulverised application components, device capabilities, resource allocation, and (runtime re-) configuration policies. The framework, implemented in Kotlin multiplatform and available as open source, is then evaluated in a small-scale real-world demo and in a city-scale simulated scenario, demonstrating the feasibility of the approach and its potential benefits in achieving better trade-offs between performance and resource utilisation.
Nicolas Farabegoli, Danilo Pianini, Roberto Casadei, Mirko Viroli
Future Gener. Comput. Syst.4
2024 The eXchange Calculus (XC): A functional programming language design for distributed collective systems
abstract
Distributed collective systems are systems formed by homogeneous dynamic collections of devices acting in a shared environment to pursue a joint task or goal. Typical applications emerge in the context of wireless sensor networks, robot swarms, groups of wearable-augmented people, and computing infrastructures. Programming such systems is notoriously hard, due to requirements of scalability, concurrency, faults, and difficulty in making desired collective behaviour ultimately emerge: ad-hoc languages and mechanisms have been proposed threads like spatial computing, macro-programming, and field-based coordination. In this paper we present the eXchange Calculus (XC), formalising a tiny set of key mechanisms, usable across many different languages and platforms, allowing to express the overall interactive behaviour of distributed collective systems in a declarative way. In this approach, computation (executed in asynchronous rounds), communication (which is neighbour-based), and state over time, are all expressed by a single declarative construct, called exchange. We provide a formalisation of XC in terms of syntax, device-level and network-level semantics, prove a number of properties of the calculus, and discuss applicability considering a smart city scenario. XC is implemented as a DSL in Scala and in C++, with different trade-offs in terms of productivity and platform targetting.
Giorgio Audrito, Roberto Casadei, Ferruccio Damiani, Guido Salvaneschi, Mirko Viroli
J. Syst. Softw.5
2024 ScaRLib: Towards a hybrid toolchain for aggregate computing and many-agent reinforcement learning
Davide Domini, Filippo Cavallari, Gianluca Aguzzi, Mirko Viroli
Sci. Comput. Program.4
2023 MacroSwarm: A Field-Based Compositional Framework for Swarm Programming
Gianluca Aguzzi, Roberto Casadei, Mirko Viroli
COORDINATION3
2023 Programming Distributed Collective Processes for Dynamic Ensembles and Collective Tasks
Giorgio Audrito, Roberto Casadei, Ferruccio Damiani, Gianluca Torta, Mirko Viroli
COORDINATION5
2023 ScaRLib: A Framework for Cooperative Many Agent Deep Reinforcement Learning in Scala
Davide Domini, Filippo Cavallari, Gianluca Aguzzi, Mirko Viroli
COORDINATION4
2023 Computation Against a Neighbour: Addressing Large-Scale Distribution and Adaptivity with Functional Programming and Scala
abstract
Recent works in contexts like the Internet of Things (IoT) and large-scale Cyber-Physical Systems (CPS) propose the idea of programming distributed systems by focussing on their global behaviour across space and time. In this view, a potentially vast and heterogeneous set of devices is considered as an "aggregate" to be programmed as a whole, while abstracting away the details of individual behaviour and exchange of messages, which are expressed declaratively. One such a paradigm, known as aggregate programming, builds on computational models inspired by field-based coordination. Existing models such as the field calculus capture interaction with neighbours by a so-called "neighbouring field" (a map from neighbours to values). This requires ad-hoc mechanisms to smoothly compose with standard values, thus complicating programming and introducing clutter in aggregate programs, libraries and domain-specific languages (DSLs). To address this key issue we introduce the novel notion of "computation against a neighbour", whereby the evaluation of certain subexpressions of the aggregate program are affected by recent corresponding evaluations in neighbours. We capture this notion in 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. This paper formalises NC, thoroughly compares it with respect to the classic field calculus, and shows its expressiveness by means of a case study in edge computing, developed in ScaFi.
Giorgio Audrito, Roberto Casadei, Ferruccio Damiani, Mirko Viroli
Log. Methods Comput. Sci.4
2023 Space-Fluid Adaptive Sampling by Self-Organisation
abstract
A recurrent task in coordinated systems is managing (estimating, predicting, or controlling) signals that vary in space, such as distributed sensed data or computation outcomes. Especially in large-scale settings, the problem can be addressed through decentralised and situated computing systems: nodes can locally sense, process, and act upon signals, and coordinate with neighbours to implement collective strategies. Accordingly, in this work we devise distributed coordination strategies for the estimation of a spatial phenomenon through collaborative adaptive sampling. Our design is based on the idea of dynamically partitioning space into regions that compete and grow/shrink to provide accurate aggregate sampling. Such regions hence define a sort of virtualised space that is "fluid", since its structure adapts in response to pressure forces exerted by the underlying phenomenon. We provide an adaptive sampling algorithm in the field-based coordination framework, and prove it is self-stabilising and locally optimal. Finally, we verify by simulation that the proposed algorithm effectively carries out a spatially adaptive sampling while maintaining a tuneable trade-off between accuracy and efficiency.
Roberto Casadei, Stefano Mariani 0001, Danilo Pianini, Mirko Viroli, Franco Zambonelli
Log. Methods Comput. Sci.4
2022 Towards Reinforcement Learning-based Aggregate Computing
Gianluca Aguzzi, Roberto Casadei, Mirko Viroli
COORDINATION3
2022 Space-Fluid Adaptive Sampling: A Field-Based, Self-organising Approach
Roberto Casadei, Stefano Mariani 0001, Danilo Pianini, Mirko Viroli, Franco Zambonelli
COORDINATION4
2022 Functional Programming for Distributed Systems with XC
Giorgio Audrito, Roberto Casadei, Ferruccio Damiani, Guido Salvaneschi, Mirko Viroli
ECOOP5
2022 A Methodology and Simulation-Based Toolchain for Estimating Deployment Performance of Smart Collective Services at the Edge
abstract
Research trends are pushing artificial intelligence (AI) across the Internet of Things (IoT)–edge–fog–cloud continuum to enable effective data analytics, decision making, as well as the efficient use of resources for QoS targets. Approaches for collective adaptive systems (CASs) engineering, such as aggregate computing, provide declarative programming models and tools for dealing with the uncertainty and the complexity that may arise from scale, heterogeneity, and dynamicity. Crucially, aggregate computing architecture allows for “pulverization”: applications can be decomposed into many deployable micromodules that can be spread across the ICT infrastructure, thus allowing multiple potential deployment configurations for the same application logic. This article studies the deployment architecture of aggregate-based edge services and its implications in terms of performance and cost. The goal is to provide methodological guidelines and a model-based toolchain for the generation and simulation-based evaluation of potential deployments. First, we address this subject methodologically by proposing an approach based on deployment code generators and a simulation phase whose obtained solutions are assessed with respect to their performance and costs. We then tailor this approach to aggregate computing applications deployed onto an IoT–edge–fog–cloud infrastructure, and we develop a corresponding toolchain based on Protelis and EdgeCloudSim. Finally, we evaluate the approach and tools through a case study of edge multimedia streaming, where the edge ecosystem exhibits intelligence by self-organizing into clusters to promote load balancing in large-scale dynamic settings.
Roberto Casadei, Giancarlo Fortino, Danilo Pianini, Andrea Placuzzi, Claudio Savaglio, Mirko Viroli
IEEE Internet Things J.6
2022 Distributed runtime verification by past-CTL and the field calculus
Giorgio Audrito, Ferruccio Damiani, Volker Stolz, Gianluca Torta, Mirko Viroli
J. Syst. Softw.5
2021 ScaFi-Web: A Web-Based Application for Field-Based Coordination Programming
Gianluca Aguzzi, Roberto Casadei, Niccolò Maltoni, Danilo Pianini, Mirko Viroli
COORDINATION5
2021 Tuple-Based Coordination in Large-Scale Situated Systems
Roberto Casadei, Mirko Viroli, Alessandro Ricci, Giorgio Audrito
COORDINATION2
2021 Engineering collective intelligence at the edge with aggregate processes
Roberto Casadei, Mirko Viroli, Giorgio Audrito, Danilo Pianini, Ferruccio Damiani
Eng. Appl. Artif. Intell.2
2021 Partitioned integration and coordination via the self-organising coordination regions pattern
Danilo Pianini, Roberto Casadei, Mirko Viroli, Antonio Natali
Future Gener. Comput. Syst.3
2021 Adaptive distributed monitors of spatial properties for cyber-physical systems
Giorgio Audrito, Roberto Casadei, Ferruccio Damiani, Volker Stolz, Mirko Viroli
J. Syst. Softw.5
2021 Time-Fluid Field-Based Coordination through Programmable Distributed Schedulers
abstract
Emerging application scenarios, such as cyber-physical systems (CPSs), the Internet of Things (IoT), and edge computing, call for coordination approaches addressing openness, self-adaptation, heterogeneity, and deployment agnosticism. Field-based coordination is one such approach, promoting the idea of programming system coordination declaratively from a global perspective, in terms of functional manipulation and evolution in "space and time" of distributed data structures called fields. More specifically regarding time, in field-based coordination (as in many other distributed approaches to coordination) it is assumed that local activities in each device are regulated by a fair and unsynchronised fixed clock working at the platform level. In this work, we challenge this assumption, and propose an alternative approach where scheduling is programmed in a natural way (along with usual field-based coordination) in terms of causality fields, each enacting a programmable distributed notion of a computation "cause" (why and when a field computation has to be locally computed) and how it should change across time and space. Starting from low-level platform triggers, such causality fields can be organised into multiple layers, up to high-level, collectively-computed time abstractions, to be used at the application level. This reinterpretation of time in terms of articulated causality relations allows us to express what we call "time-fluid" coordination, where scheduling can be finely tuned so as to select the triggers to react to, generally allowing to adaptively balance performance (system reactivity) and cost (resource usage) of computations. We formalise the proposed scheduling framework for field-based coordination in the context of the field calculus, discuss an implementation in the aggregate computing framework, and finally evaluate the approach via simulation on several case studies.
Danilo Pianini, Roberto Casadei, Mirko Viroli, Stefano Mariani 0001, Franco Zambonelli
Log. Methods Comput. Sci.3
2021 Aggregate centrality measures for IoT-based coordination
Giorgio Audrito, Danilo Pianini, Ferruccio Damiani, Mirko Viroli
Sci. Comput. Program.4
2020 Resilient Distributed Collection Through Information Speed Thresholds
Giorgio Audrito, Sergio Bergamini, Ferruccio Damiani, Mirko Viroli
COORDINATION4
2020 Time-Fluid Field-Based Coordination
Danilo Pianini, Stefano Mariani 0001, Mirko Viroli, Franco Zambonelli
COORDINATION3
2020 FScaFi : A Core Calculus for Collective Adaptive Systems Programming
Roberto Casadei, Mirko Viroli, Giorgio Audrito, Ferruccio Damiani
ISoLA (2)2
2020 Field-based Coordination with the Share Operator
Giorgio Audrito, Jacob Beal, Ferruccio Damiani, Danilo Pianini, Mirko Viroli
Log. Methods Comput. Sci.5
2019 The share Operator for Field-Based Coordination
Giorgio Audrito, Jacob Beal, Ferruccio Damiani, Danilo Pianini, Mirko Viroli
COORDINATION5
2019 Self-organising Coordination Regions: A Pattern for Edge Computing
Roberto Casadei, Danilo Pianini, Mirko Viroli, Antonio Natali
COORDINATION3
2019 Aggregate Processes in Field Calculus
Roberto Casadei, Mirko Viroli, Giorgio Audrito, Danilo Pianini, Ferruccio Damiani
COORDINATION2
2019 On a Higher-Order Calculus of Computational Fields
Giorgio Audrito, Mirko Viroli, Ferruccio Damiani, Danilo Pianini, Jacob Beal
FORTE2
2019 Modelling and simulation of Opportunistic IoT Services with Aggregate Computing
Roberto Casadei, Giancarlo Fortino, Danilo Pianini, Wilma Russo, Claudio Savaglio, Mirko Viroli
Future Gener. Comput. Syst.6
2019 A development approach for collective opportunistic Edge-of-Things services
Roberto Casadei, Giancarlo Fortino, Danilo Pianini, Wilma Russo, Claudio Savaglio, Mirko Viroli
Inf. Sci.6
2019 From distributed coordination to field calculus and aggregate computing
Mirko Viroli, Jacob Beal, Ferruccio Damiani, Giorgio Audrito, Roberto Casadei, Danilo Pianini
J. Log. Algebraic Methods Program.1
2019 A Higher-Order Calculus of Computational Fields
abstract
The complexity of large-scale distributed systems, particularly when deployed in physical space, calls for new mechanisms to address composability and reusability of collective adaptive behaviour. Computational fields have been proposed as an effective abstraction to fill the gap between the macro-level of such systems (specifying a system’s collective behaviour) and the micro-level (individual devices’ actions of computation and interaction to implement that collective specification), thereby providing a basis to better facilitate the engineering of collective APIs and complex systems at higher levels of abstraction. This article proposes a full formal foundation for field computations, in terms of a core (higher-order) calculus of computational fields containing a few key syntactic constructs, and equipped with typing, denotational and operational semantics. Critically, this allows formal establishment of a link between the micro- and macro-levels of collective adaptive systems by a result of computational adequacy and abstraction for the (aggregate) denotational semantics with respect to the (per-device) operational semantics.
Giorgio Audrito, Mirko Viroli, Ferruccio Damiani, Danilo Pianini, Jacob Beal
ACM Trans. Comput. Log.2
2018 Space-Time Universality of Field Calculus
Giorgio Audrito, Jacob Beal, Ferruccio Damiani, Mirko Viroli
COORDINATION4
2018 From Field-Based Coordination to Aggregate Computing
Mirko Viroli, Jacob Beal, Ferruccio Damiani, Giorgio Audrito, Roberto Casadei, Danilo Pianini
COORDINATION1
2018 Distributed Real-Time Shortest-Paths Computations with the Field Calculus
abstract
As the density of sensing/computation/actuation nodes is increasing, it becomes more and more feasible and useful to think at an entire network of physical devices as a single, continuous space-time computing machine. The emergent behaviour of the whole software system is then induced by local computations deployed within each node and by the dynamics of the information diffusion. A relevant example of this distribution model is given by aggregate computing and its companion language field calculus, a minimal set of purely functional constructs used to manipulate distributed data structures evolving over space and time, and resulting in robustness to changes. In this paper, we study the convergence time of an archetypal and widely used component of distributed computations expressed in field calculus, called gradient: a fully-distributed estimation of distances over a metric space by a spanning tree. We provide an analytic result linking the quality of the output of a gradient to the amount of computing resources dedicated. The resulting error bounds are then exploited for network design, suggesting an optimal density value taking broadcast interferences into account. Finally, an empirical evaluation is performed validating the theoretical results.
Giorgio Audrito, Ferruccio Damiani, Mirko Viroli, Enrico Bini
RTSS3
2018 Spatial Tuples: Augmenting reality with tuples
abstract
Abstract We introduce Spatial Tuples, an extension of the basic tuple‐based model for distributed multi‐agent system coordination where (a) tuples are conceptually placed in regions of the physical world and possibly move anchored to a mobile computational device, (b) the behaviour of standard Linda coordination primitives is extended so as to depend on the spatial properties of the coordinating agents, tuples, and the topology of space, and (c) the tuple space can be conceived as a virtual layer augmenting physical reality. Motivated by the needs of mobile augmented‐reality applications, Spatial Tuples explicitly aims at supporting space‐aware and space‐based coordination in agent‐based pervasive computing scenarios. This paper presents the coordination model, its formalization as a process algebra, a library of patterns of coordination it enables, and a discussion of application scenarios, challenges, and open issues for future works.
Alessandro Ricci, Mirko Viroli, Andrea Omicini, Stefano Mariani 0001, Angelo Croatti, Danilo Pianini
Expert Syst. J. Knowl. Eng.2
2018 Optimal single-path information propagation in gradient-based algorithms
Giorgio Audrito, Ferruccio Damiani, Mirko Viroli
Sci. Comput. Program.3
2018 Towards attack-resistant Aggregate Computing using trust mechanisms
Roberto Casadei, Alessandro Aldini, Mirko Viroli
Sci. Comput. Program.3
2017 Optimally-Self-Healing Distributed Gradient Structures Through Bounded Information Speed
Giorgio Audrito, Ferruccio Damiani, Mirko Viroli
COORDINATION3
2017 Self-Adaptation to Device Distribution in the Internet of Things
abstract
A key problem when coordinating the behaviour of spatially situated networks, like those typically found in the Internet of Things (IoT), is adaptation to changes impacting network topology, density, and heterogeneity. Computational goals for such systems, however, are often dependent on geometric properties of the continuous environment in which the devices are situated rather than the particulars of how devices happen to be distributed through it. In this article, we identify a new property of distributed algorithms, eventual consistency , which guarantees that computation converges to a final state that approximates a predictable limit, based on the continuous environment, as the density and speed of devices increases. We then identify a large class of programs that are eventually consistent, building on prior results on the field calculus computational model (Beal et al. 2015; Viroli et al. 2015a) that identify a class of self-stabilizing programs. Finally, we confirm through simulation of IoT application scenarios that eventually consistent programs from this class can provide resilient behavior where programs that are only converging fail badly.
Jacob Beal, Mirko Viroli, Danilo Pianini, Ferruccio Damiani
ACM Trans. Auton. Adapt. Syst.2
2016 Improving Gossip Dynamics Through Overlapping Replicates
Danilo Pianini, Jacob Beal, Mirko Viroli
COORDINATION3
2016 Simulating Large-scale Aggregate MASs with Alchemist and Scala
abstract
Recent works in the context of large-scale adaptive systems, such as those based on opportunistic IoT-based applications, promote aggregate programming, a development approach for distributed systems in which the collectivity of devices is directly targeted, instead of individual ones.This makes the resulting behaviour highly insensitive to network size, density, and topology, and as such, intrinsically robust to failures and changes to working conditions (e.g., location of computational load, communication technology, and computational infrastructure).Most specifically, we argue that aggregate programming is particularly suitable for building models and simulations of complex large-scale reactive MASs.Accordingly, in this paper we describe SCAFI (Scala Fields), a Scala-based API and DSL for aggregate programming, and its integration with the ALCHEMIST simulator, and usage scenarios in the context of smart mobility.
Mirko Viroli, Roberto Casadei, Danilo Pianini
FedCSIS1
2016 A type-sound calculus of computational fields
abstract
A number of recent works have investigated the notion of “computational fields” as a means of coordinating systems in distributed, dense and dynamic environments such as pervasive computing, sensor networks, and robot swarms. We introduce a minimal core calculus meant to capture the key ingredients of languages that make use of computational fields: functional composition of fields, functions over fields, evolution of fields over time, construction of fields of values from neighbours, and restriction of a field computation to a sub-region of the network. We formalise a notion of type soundness for the calculus that encompasses the concept of domain alignment, and present a sound static type inference system. This calculus and its type inference system can act as a core for actual implementation of coordination languages and models, as well as to pave the way towards formal analysis of properties concerning expressiveness, self-stabilisation, topology independence, and relationships with the continuous space–time semantics of spatial computations.
Ferruccio Damiani, Mirko Viroli, Jacob Beal
Sci. Comput. Program.2
2016 SASO 2014: Selected, Revised, and Extended Best Papers
abstract
The international conference IEEE SASO (Self-Adapting and Self-Organizing Systems) is the main forum for studying and discussing the foundations of a principled approach to engineering systems, networks, and services based on self-adaptation and self-organization. Over the past decade, it has consolidated as the primary scientific conference for sharing ideas on algorithms, technologies, tools, and applications across a wide range of scientific fields. In 2014, the conference was hosted by Imperial College in London, United Kingdom; its scientific program comprised full papers, short papers, poster presentations, demo sessions, workshops, and tutorials. This special issue of ACM TAAS champions some of the most solid research results of SASO 2014, presenting selected, revised, and extended best articles.
Mirko Viroli, Ada Diaconescu, Nagarajan Kandasamy
ACM Trans. Auton. Adapt. Syst.1
2015 Code Mobility Meets Self-organisation: A Higher-Order Calculus of Computational Fields
Ferruccio Damiani, Mirko Viroli, Danilo Pianini, Jacob Beal
FORTE2
2015 Multi-agent Systems Meet Aggregate Programming: Towards a Notion of Aggregate Plan
Mirko Viroli, Danilo Pianini, Alessandro Ricci, Pietro Brunetti, Angelo Croatti
PRIMA1
2015 Developing pervasive multi-agent systems with nature-inspired coordination
Franco Zambonelli, Andrea Omicini, Bernhard Anzengruber, Gabriella Castelli, Francesco L. De Angelis, Giovanna Di Marzo Serugendo, Simon A. Dobson, Jose Luis Fernandez-Marquez, Alois Ferscha, Marco Mamei, Stefano Mariani 0001, Ambra Molesini, Sara Montagna, Jussi Nieminen, Danilo Pianini, Matteo Risoldi, Alberto Rosi, Graeme Stevenson, Mirko Viroli, Juan Ye
Pervasive Mob. Comput.19
2015 A coordination model of pervasive service ecosystems
Mirko Viroli, Danilo Pianini, Sara Montagna, Graeme Stevenson, Franco Zambonelli
Sci. Comput. Program.1
2014 A Calculus of Self-stabilising Computational Fields
Mirko Viroli, Ferruccio Damiani
COORDINATION1
2014 Best ACM SAC Articles on Coordination and Self-Adaptation
abstract
No abstract available.
Jose Luis Fernandez-Marquez, Mirko Viroli, Gabriella Castelli
ACM Trans. Auton. Adapt. Syst.2
2013 Injecting Self-Organisation into Pervasive Service Ecosystems
Sara Montagna, Mirko Viroli, Jose Luis Fernandez-Marquez, Giovanna Di Marzo Serugendo, Franco Zambonelli
Mob. Networks Appl.2
2013 Description and composition of bio-inspired design patterns: a complete overview
Jose Luis Fernandez-Marquez, Giovanna Di Marzo Serugendo, Sara Montagna, Mirko Viroli, Josep Lluís Arcos
Nat. Comput.4
2013 Simulation in Agent-Oriented Software Engineering: The SODA case study
Ambra Molesini, Matteo Casadei, Andrea Omicini, Mirko Viroli
Sci. Comput. Program.4
2013 Semantic tuple centres
Elena Nardini 0001, Andrea Omicini, Mirko Viroli
Sci. Comput. Program.3
2013 On competitive self-composition in pervasive services
Mirko Viroli
Sci. Comput. Program.1
2013 Operational semantics of proto
Mirko Viroli, Jacob Beal, Kyle Usbeck
Sci. Comput. Program.1
2012 Linda in Space-Time: An Adaptive Coordination Model for Mobile Ad-Hoc Environments
Mirko Viroli, Danilo Pianini, Jacob Beal
COORDINATION1
2011 A Chemical Inspired Simulation Framework for Pervasive Services Ecosystems
Danilo Pianini, Sara Montagna, Mirko Viroli
FedCSIS3
2011 Environment programming in multi-agent systems: an artifact-based perspective
Alessandro Ricci, Michele Piunti, Mirko Viroli
Auton. Agents Multi Agent Syst.3
2011 Preface
Carlos Canal, Pascal Poizat, Mirko Viroli
Sci. Comput. Program.3
2011 simpA: An agent-oriented approach for programming concurrent applications on top of Java
Alessandro Ricci, Mirko Viroli, Giulio Piancastelli
Sci. Comput. Program.2
2011 Spatial Coordination of Pervasive Services through Chemical-Inspired Tuple Spaces
abstract
To support and engineer the spatial coordination of distributed pervasive services, we propose a chemical-inspired model, which extends tuple spaces with the ability of evolving tuples mimicking chemical systems, that is, in terms of reaction and diffusion rules that apply to tuples modulo semantic match. The suitability of this model is studied by considering a self-adaptive display infrastructure providing people nearby with several visualization services (advertisements, news, personal and social content). The key result of this article is that general-purpose chemical reactions inspired by population dynamics can be used in pervasive applications to enact spatial computing patterns of competition and gradient-based interaction.
Mirko Viroli, Matteo Casadei, Sara Montagna, Franco Zambonelli
ACM Trans. Auton. Adapt. Syst.1
2010 A biochemical approach to adaptive service ecosystems
Mirko Viroli, Franco Zambonelli
Inf. Sci.1
2009 An experience on probabilistic model checking and stochastic simulation to design self-organizing systems
abstract
The interest in self-organization as a feasible metaphor for dealing with the growing complexity of today's software systems is constantly rising. In particular, by adopting self-organization, systems can adapt to highly dynamic environments by local interactions among system's components. As a consequence, the global behavior of the system can be regarded as an emergent property since it appears by a process emerging from local interactions among components. The corresponding system dynamics is usually non-linear and complex so that the adoption of simulation and verification techniques in the early design stage becomes essential to carry out an effective design. Accordingly, in this paper we discuss a hybrid approach relying on stochastic simulation and probabilistic model checking. We show also a possible application of the approach on a problem called collective sort, by adopting the PRISM probabilistic model checker as a concrete tool for analyzing emergent properties. A discussion of the corresponding results is provided.
Matteo Casadei, Mirko Viroli
IEEE Congress on Evolutionary Computation2
2009 A computational framework for modelling multicellular biochemistry
abstract
A state-of-the-art problem in Computational Systems Biology is to provide suitable tools to model and predict the behaviour of multicellular systems (tissues, embryos) where biological interactions occur both inside and between cells (or compartments in general). Starting from existing computational models and languages such as stochastic pi-calculus, Petri Nets, mobile ambients, and membrane computing, we developed a new computational framework based on (i) a compositional model for biological compartments, and (ii) an enhanced model of chemical rules addressing also biomechanical actions such as substances diffusion across membranes or compartments splitting. We tested a fragment of the framework using a case study based on spatial pattern formation in embryogenesis, where the interplay between cells' internal dynamics and cell-to-cell interactions has a central role.
Sara Montagna, Mirko Viroli
IEEE Congress on Evolutionary Computation2
2009 Biochemical Tuple Spaces for Self-organising Coordination
Mirko Viroli, Matteo Casadei
COORDINATION1
2009 FEATHERWEIGHT AGENT LANGUAGE - A Core Calculus for Agents and Artifacts
Ferruccio Damiani, Paola Giannini, Alessandro Ricci, Mirko Viroli
ICSOFT (1)4
2009 On the collective sort problem for distributed tuple spaces
Matteo Casadei, Mirko Viroli, Luca Gardelli
Sci. Comput. Program.2
2008 Artifacts in the A&A meta-model for multi-agent systems
Andrea Omicini, Alessandro Ricci, Mirko Viroli
Auton. Agents Multi Agent Syst.3
2008 Lightweight family polymorphism
abstract
Abstract Family polymorphism has been proposed for object-oriented languages as a solution to supporting reusable yet type-safe mutually recursive classes. A key idea of family polymorphism is the notion of families, which are used to group mutually recursive classes. In the original proposal, due to the design decision that families are represented by objects, dependent types had to be introduced, resulting in a rather complex type system. In this article, we propose a simpler solution of lightweight family polymorphism, based on the idea that families are represented by classes rather than by objects. This change makes the type system significantly simpler without losing much expressive power of the language. Moreover, “family-polymorphic” methods now take a form of parametric methods; thus, it is easy to apply method type argument inference as in Java 5.0. To rigorously show that our approach is safe, we formalize the set of language features on top of Featherweight Java and prove that the type system is sound. An algorithm for type inference for family-polymorphic method invocations is also formalized and proved to be correct. Finally, a formal translation by erasure to Featherweight Java is presented; it is proved to preserve typing and execution results, showing that our new language features can be implemented in Java by simply extending the compiler.
Chieri Saito, Atsushi Igarashi, Mirko Viroli
J. Funct. Program.3
2008 On the reification of Java wildcards
Maurizio Cimadamore, Mirko Viroli
Sci. Comput. Program.2
2007 Self-organized over-clustering avoidance in tuple-space systems
abstract
When it comes to communication performance, open distributed tuple-space systems depend heavily on the proximity of tuples to processes. Researchers have proposed many approaches for storing tuples in a way that processes benefit from the organization of tuples. Although some progress has been made, most of the proposed solutions fail to address the reverse problem: if most tuples are kept near the processes, the system's robustness is affected; the over-clustering of tuples in particular nodes creates a dependence to that particular node. Hence, we have a dichotomy where it is important to organize tuples in clusters near the processes, but it is equally important to avoid over-clustering. The ideal is to have a balance where tuples are clustered but not totally concentrated in very few tuple spaces (eg. one or two). This paper presents a self- organized solution to the tuple distribution problem, in which the possibility of over-clustering is considered.
Matteo Casadei, Ronaldo Menezes, Mirko Viroli, Robert Tolksdorf
IEEE Congress on Evolutionary Computation3
2007 Variant path types for scalable extensibility
abstract
Much recent work in the design of object-oriented programming languages has been focusing on identifying suitable features to support so-called scalable extensibility, where the usual extension mechanism by inheritance works in different scales of software components-that is, classes, groups of classes, groups of groups and so on. Its typing issues has usually been addressed by means of dependent type systems, where nested types are seen as properties of objects. In this work, we seek instead for a different solution, which can bemore easily applied to Java-like languages, in which nested types are considered properties of classe.
Atsushi Igarashi, Mirko Viroli
OOPSLA2
2007 Infrastructures for the environment of multiagent systems
Mirko Viroli, Tom Holvoet, Alessandro Ricci, Kurt Schelfthout, Franco Zambonelli
Auton. Agents Multi Agent Syst.1
2007 Preface
Carlos Canal, Mirko Viroli
Sci. Comput. Program.2
2007 Engineering a BPEL orchestration engine as a multi-agent system
Mirko Viroli, Enrico Denti, Alessandro Ricci
Sci. Comput. Program.1
2007 Timed environment for web agents
Andrea Omicini, Alessandro Ricci, Mirko Viroli
Web Intell. Agent Syst.3
2006 Coordination as a Service
Mirko Viroli, Andrea Omicini
Fundam. Informaticae1
2006 Agent Coordination Contexts for the formal specification and enactment of coordination and security policies
Andrea Omicini, Alessandro Ricci, Mirko Viroli
Sci. Comput. Program.3
2006 Variant parametric types: A flexible subtyping scheme for generics
abstract
We develop the mechanism of variant parametric types as a means to enhance synergy between parametric and inclusion polymorphism in object-oriented programming languages. Variant parametric types are used to control both the subtyping between different instantiations of one generic class and the accessibility of their fields and methods. On one hand, one parametric class can be used to derive covariant types, contravariant types, and bivariant types (generally called variant parametric types) by attaching a variance annotation to a type argument. On the other hand, the type system prohibits certain method/field accesses, according to variance annotations, when these accesses may otherwise make the program unsafe. By exploiting variant parametric types, a programmer can write generic code abstractions that work on a wide range of parametric types in a safe manner. For instance, a method that only reads the elements of a container of numbers can be easily modified so as to accept containers of integers, floating-point numbers, or any subtype of the number type.Technical subtleties in typing for the proposed mechanism are addressed in terms of an intuitive correspondence between variant parametric and bounded existential types. Then, for a rigorous argument of correctness of the proposed typing rules, we extend Featherweight GJ---an existing formal core calculus for Java with generics---with variant parametric types and prove type soundness.
Atsushi Igarashi, Mirko Viroli
ACM Trans. Program. Lang. Syst.2
2005 Lightweight Family Polymorphism
Atsushi Igarashi, Chieri Saito, Mirko Viroli
APLAS3
2005 Time-Aware Coordination in ReSpecT
Andrea Omicini, Alessandro Ricci, Mirko Viroli
COORDINATION3
2003 A Type-Passing Approach for the Implementation of Parametric Methods in Java
abstract
Parametric methods are recognized as a very useful tool for reusing code and augmenting the expressiveness of an object-oriented language providing parametric classes. his paper focuses on their implementation techniques for Java. Existing proposals for extending Java with parametric polymorphism are outlined, showing and discussing the basic implementation techniques: type-erasure, code-expansion and type-passing. Up until now, only type-erasure and code-expansion have been exploited for the implementation of parametric methods, but they suffer from some problems. Basically, type-erasure is unable to support parametric types at run-time, while code-expansion generally leads to significant increase of both disk and memory overhead. The main goal of this paper is to study a type-passing approach aimed at tackling these issues. This is based on the management of method descriptors, which are objects passed to the method bodies at invocation-time, and which carry information on the instantiation of the method's type parameters. Run-time efficiency is guaranteed thanks to a special treatment of descriptors deferring their creation at load-time. Dynamic dispatching of method calls is supported by exploiting a data structure called the Virtual Parametric Methods Table, resembling Virtual Methods Tables of C++. The approach here presented turns out to be a significant alternative to the existing proposals for implementing generics in Java, supporting parametric types at run-time without unnecessary code footprint.
Mirko Viroli
Comput. J.1
2002 Tuple-Based Models in the Observation Framework
Mirko Viroli, Andrea Omicini
COORDINATION1
2002 On Variance-Based Subtyping for Parametric Types
Atsushi Igarashi, Mirko Viroli
ECOOP2
2000 Parametric polymorphism in Java: an approach to translation based on reflective features
abstract
The introduction of parametric polymorphism in Java with translation approaches has been shown to be of considerable interest, allowing the definition of extensions of Java on top of the existing Virtual Machines. Homogeneous translations furthermore, seem to be more useful than heterogeneous, avoiding the continuous increase of library code with redundant information. At this time however, homogeneous approaches aren't as flexible as heterogeneous, with extensions failing to integrate well with base language typing. In this paper, using some of the features of the Core Reflection of Java, we introduce a homogeneous translation in which run-time information about instantiation of type-parameters is carried, allowing full integration of parame-terized types with Java typing. Performance overhead is greatly decreased using a brand new translation technique based on the deferring of the management of type information at load-time. The same power and flexibility of previous heterogeneous approaches is obtained while maintaining homogeneous translation advantages.
Mirko Viroli, Antonio Natali
OOPSLA1