About Me

PhD Candidate in Computer Science at the ADAPT Lab (Università degli Studi di Milano), under the supervision of Prof. W. Cazzola. Programming Languages and Compilers enthusiast. Also, a Sound Engineer and Music Composer.

In addition to this homepage, to know more about me, I suggest you to check my GitHub profile and the Posts section of this website. Feel free to consider downloading my CV.

Personal Info

Born in Magenta (MI), Italy on 7th of March 2000
Resident of Via F. Turati 75/F, Arluno (MI), 20004, Italy
Email: federico.bruzzone.i@gmail.com
Email: federico.bruzzone@unimi.it
Phone: +39 391 7369214

Contact Info

GitHub: github.com/FedericoBruzzone
Telegram: @federicobruzzone
LinkedIn: in/federico-bruzzone
Twitter: @fedebruzzone7
Reddit: u/FedericoBruzzone

Scientific Publications

June 2025 | [bib] [pdf] [SpringerLink] [arXiv] \(-\) F. Bruzzone, W. Cazzola, and L. Favalli, "Code Less to Code More: Streamlining Language Server Protocol and type system development for language families", Journal of Systems and Software, Sep. 2025. DOI: 10.1016/j.jss.2025.112554. Journal Ranked Q1 on Scimago

Abstract

Developing editing support for \(\mathbf{L}\) languages in \(\mathbf{E}\) editors is complex and time-consuming. Some languages do not provide dedicated editors, while others offer a single native editor. The \(\textit{language server protocol}\) (LSP) reduces the language-editor combinations \(\mathbf{L} \times \mathbf{E}\) to \(\mathbf{L} + \mathbf{E}\), where a single language server communicates with editors via LSP plugins. However, overlapping implementations of linguistic components remain an issue. Existing language workbenches struggle with modularity, reusability, and leveraging type systems for language server generation. In this work, we propose: (i) Typelang, a family of domain-specific languages for modular, composable, and reusable type system implementation, (ii) a modular language server generation process, producing servers for languages built in a modular workbench, (iii) the variant-oriented programming paradigm and a cross-artifact coordination layer to manage interdependent software variants, and (iv) an LSP plugin generator, reducing \(\mathbf{E}\) to \(\mathbf{1}\) by automating plugin creation for multiple editors. To simplify editing support for language families, each language artifact integrates its own Typelang variant, used to generate language servers. This reduces combinations to \(\mathbf{T} \times \mathbf{1}\), where \(\mathbf{T} = \mathbf{L}\) represents the number of type systems. Further reuse of language artifacts across languages lowers this to \(\mathbf{N} \times \mathbf{1}\), where \(\mathbf{N} << \mathbf{T}\), representing unique type systems. We implement Typelang in Neverlang, generating language servers for each artifact and LSP plugins for three editors. Empirical evaluation shows a 93.48% reduction in characters needed for type system implementation and 100% automation of LSP plugin generation, significantly lowering effort for editing support in language families, especially when artifacts are reused.

Preprints

February 2026 | [bib] [pdf] [arXiv] \(-\) F. Bruzzone, W. Cazzola, and L. Favini, "Prioritizing Configuration Relevance via Compiler-Based Refined Feature Ranking"

Abstract

Modern programming languages, most notably Rust, offer advanced linguistic constructs for building highly configurable software systems as aggregation of features---identified by a configuration. However, they pose substantial challenges for program analysis, optimization, and testing, as the combinatorial explosion of configurations often makes exhaustive exploration infeasible. In this manuscript, we present the first compiler-based method for prioritizing configurations. Our approach consists of four main steps: (1) extracting a tailored intermediate representation from the Rust compiler, (2) constructing two complementary graph-based data structures, (3) using centrality measures to rank features, and (4) refining the ranking by considering the extent of code they impact. A fixed number of most relevant configurations are generated based on the achieved feature ranking. The validity of the generated configurations is guaranteed by using a SAT solver that takes a representation of this graph in conjunctive normal form. We formalized this approach and implemented it in a prototype, RustyEx, by instrumenting the Rust compiler. An empirical evaluation on higher-ranked open source Rust projects shows that RustyEx efficiently generates user-specified sets of configurations within bounded resources, while ensuring soundness by construction. The results demonstrate that centrality-guided configuration prioritization enables effective and practical exploration of large configuration spaces, paving the way for future research in configuration-aware analysis and optimization.

February 2026 | [bib] [pdf] [arXiv] \(-\) F. Bruzzone, W. Cazzola, M. Brancaleoni, and D. Pellegrino, "Sink or SWIM: Tackling Real-Time ASR at Scale"

Abstract

Real-time automatic speech recognition systems are increasingly integrated into interactive applications, from voice assistants to live transcription services. However, scaling these systems to support multiple concurrent clients while maintaining low latency and high accuracy remains a major challenge. In this work, we present SWIM, a novel real-time ASR system built on top of OpenAI's Whisper model that enables true model-level parallelization for scalable, multilingual transcription. SWIM supports multiple concurrent audio streams without modifying the underlying model. It introduces a buffer merging strategy that maintains transcription fidelity while ensuring efficient resource usage. We evaluate SWIM in multi-client settings---scaling up to 20 concurrent users---and show that it delivers accurate real-time transcriptions in English, Italian, and Spanish, while maintaining low latency and high throughput. While Whisper-Streaming achieves a word error rate of approximately 8.2% with an average delay of approximately 3.4,s in a single-client, English-only setting, SWIM extends this capability to multilingual, multi-client environments. It maintains comparable accuracy with significantly lower delay---around 2.4,s with 5 clients---and continues to scale effectively up to 20 concurrent clients without degrading transcription quality and increasing overall throughput. Our approach advances scalable ASR by improving robustness and efficiency in dynamic, multi-user environments.

Research Activities

2025/12/15 | Reviewer for ECOOP 2026

I served as a Reviewer for the European Conference on Object-Oriented Programming (ECOOP 2026).

2025/11/25 | Reviewer for COLA

I served as a Reviewer for the Journal of Computer Languages (COLA).

2025/03/01 | Reviewer for SoSyM

I served as a Reviewer for the Journal of Software and System Modeling (SoSyM).

2025/06/{02-06} | Participant at <Programming> Conference 2025

I participated in the <Programming> Conference 2025, which took place in Prague, Czech Republic.

2025/{04/01-06/01} | Committee Member at SLE 2025

I served as a Committee Member (in Artifact Evaluation Committee) at the 18th ACM SIGPLAN International Conference on Software Language Engineering (SLE 2025). Check here for more details.

2025/03/01 | Reviewer for JSS

I served as a Reviewer for the Journal of Systems and Software (JSS). The review was performed for the special issue Trends in Systems and Software Product Line Engineering.

2024/09/{01-06} | Student Volunteer at ICFP 2024

I served as a Student Volunteer at the 29th ACM SIGPLAN International Conference on Functional Programming (ICFP 2024).

Dissemination Activities

2025/12/04 | Your Optimizing Compiler is Not Optimizing Enough. To Hell With Multiple Recursions!

The presentation for the first MuseMI meeting of the 2025/2026 season, held in Milan.

Abstract

Optimizing compilers exhibit limitations when handling multiple recursive functions (e.g., Fibonacci). While single recursion is optimized via Tail-Call Optimization into efficient iteration, multiple recursion often forces the compiler to retain a partial, performance-limiting recursive structure. Analyzing the optimized LLVM IR reveals that even state-of-the-art compilers fail to achieve complete incrementalization for this pattern. We argue that the automatic, general-setting iterative transformation of multiple recursive functions remains an unsolved and critical challenge for compiler technology.

2024/07/22 | P4 Compiler in SDN

The presentation for the P4 compiler in Software Defined Networking (SDN).

2024/07/22 | PhD Project

The presentation about my PhD project, Universal Language Server Protocol and Debugger Adapter Protocol for Modular Language Workbenches, at the University of Milan.

2024/07/15 | Master's Thesis

The presentation of my Master's Thesis, Toward a Modular Approach for Type Systems and LSP Generation, at the University of Milan.

Open Source Activities

2026 - Current | Maintainer of the LLVM Pass Template

TThis project allows developers to quickly bootstrap, test, and benchmark new out-of-tree LLVM passes with minimal effort — that is, without the need to build LLVM from sources.

2025 - Current | Maintainer of the Papers on Compiler Optimizations: Analysis and Transformations

This repository curates a chronologically sorted list of influential papers on compiler optimization, from the seminal works of 1952 through the advanced techniques of 1994. It's an essential resource for students, researchers, and engineers seeking to understand the foundational and critical advancements in compiler design, analysis, and optimization techniques.

2025/03 - Current | Maintainer of the Tide compiler an backend-agnostic IR and compiler framework written in Rust.

I am the maintainer of the Tide compiler. Tide aims to be a modular and extensible framework for building compilers and language tools, prioritizing simplicity and ease of use. From its quasi-SSA IR to its flexible backend architecture, Tide provides a solid foundation for developing compilers for various programming languages.

2024/03 - Current | Maintainer of the cross-platform tgt project and tdlib-rs written in Rust

Tgt is a TUI (Terminal User Interface) client for Telegram, built using the tdlib-rs library, which provides safe and idiomatic Rust bindings to the official TDLib (Telegram Database Library) C++ library. Thanks to CI/CD pipelines, we ensure (i) that the projects build and work correctly on Linux, macOS, and Windows, (ii) automatic releases on GitHub and crates.io, and (iii) automatic documentation generation.

2025/04/03 | One of the 393 contributors to Rust 1.86.0

I am one of the 393 contributors to Rust 1.86.0. You can find the release notes here.

2025/02/14 | Rustworkx: Generalizing Closeness centrality to weighted networks using Newman method

This PR closed the issue #1384 by generalizing the Closeness centrality to weighted networks using the Newman method. It provides both the Rust implementation and the Python bindings.

2025/02/01 | Rustc: Use the type-level constant value ty::Value where needed

With this PR, I refactored functions to accept a single type-level constant value ty::Value instead of separate ty::Valtree and ty::Ty parameters.

2025/01/27 | Rustc: Add TooGeneric to LayoutError and emit Unknown

With this PR, I added the TooGeneric variant to the LayoutError enum to emit the error when a type is too generic to be laid out. The Unknown variant is emitted when the layout of a type is unknown.

2024/12/08 | One of the 396 contributors to Rust 1.83.0

I am one of the 396 contributors to Rust 1.83.0. You can find the release notes here.

2024 | 56th Top Github Contributor (for public contributions) in Italy out of 958

I am the 56th top Github contributor (for public contributions) in Italy out of 958 according to this classification.

2024/09/12 | Rustc: First Contribution to Rust

After the study of the rustc-dev-guide, I made my first small contribution to the Rust compiler.