I am currently an Assistant Professor (non-tenure) at the Ca’ Foscari University of Venice focusing on static analysis by abstract interpretation. My interest on the topic is broad, but I mainly focus on the practical aspects of multi-language static analyzers.
I started studying computer science in high school, continuing with both Bachelor’s and Master’s degree at the University of Verona. I got in touch with JuliaSoft (part of Corvallis) during my Master’s thesis, and that was the place where I got interested in Abstract Interpretation. I joined JuliaSoft as a developer of the Julia static analyzer in April 2018, following its development mainly in Java and C#. I was also part of the Scientific LAB, whose main focus is to bring the theoretical resesarch on Static analysis in contact with the industrial ecosystem. This led to a vast number of publications and continues to bring contributions to the scientific community. When Julia was integrated inside CodeSonar, I kept working on the analyzer in conjunction with the GrammaTech team, bridging the two tools for a wider impact on the Static Analysis market.
In October 2019, I joined the Ca’ Foscari University of Venice as a PhD student in Computer Science, focusing on multi-language static analysis, and graduating in January 2023. I have now joined Ca’ Foscary and the Software and System Verification (SSV), first as a Research Fellow and now as an Assistant Professor (non-tenure).
In my PhD thesis, I defined a generic framework for the development of modular multilanguage static analyses using the abstract interpretation theory. The framework has been implemented in LiSA. LiSA strives to be modular, while ensuring that analysis components are parametric to all language-specific features. Together with my colleagues, we instantiated LiSA for the analysis of smart contracts written in Go using GoLiSA, and for the analysis of data science notebooks written in Python using PyLiSA. The framework is then strenghtened by two additiona components: SARL, a domain-specific language that can be used to compactly model how frameworks and libraries interact with the analyzed application, and Tarsis, an abstract domain that abstracts strings as regular languages.
You can access the full thesis here, and the slides used for the defence here.