Enea Zaffanella
Current Organizations / Institutes
The organizations/institutes from the scholar's latest article
Previous Organizations / Institutes
The organizations / institutes from the scholar's other articles in the past ten years
Research Subjects
Enea Zaffanella has a total of 55 co-authors. Here are the top co-authors by number of shared publications:
- Roberto Bagnara
Dipartimento di Matematica e Informatica University of Parma Italy
22 shared publications Patricia M. Hill
University of Leeds
19 shared publicationsRoberto Bagnara
Dipartimento di Matematica, Universití di Parma, Italy and BUGSENG srl, Italy11http://bugseng.com
18 shared publications- Patricia M. Hill
School of Computing University of Leeds UK
14 shared publications - Vincenzo Arceri
University of Parma, Parma, Italy
8 shared publications - Greta Dolcetti
Ca' Foscari University of Venice, Venice, Italy
6 shared publications
Latest Publications
- Open Access
- 25 January 2026
- Published by Elsevier in Knowledge-Based Systems
- Vol. 337
PYRA : A high-level linter for data science software
- 25 January 2026
- Published by Elsevier in Knowledge-Based Systems
- Vol. 337
Open AccessPYRA : A high-level linter for data science software
- 2 October 2025
- Published by Springer Nature
- p. 449-453
Introducing Pyra: A High-Level Linter for Data Science Software
- 2 October 2025
- Published by Springer Nature
- p. 449-453
Introducing Pyra: A High-Level Linter for Data Science Software
- Open Access
- 10 September 2025
- Published by Elsevier in Blockchain: Research and Applications
- Vol. 7 (4)
EVMLiSA: Sound Static Control-Flow Graph Construction for EVM Bytecode
- 10 September 2025
- Published by Elsevier in Blockchain: Research and Applications
- Vol. 7 (4)
Open AccessEVMLiSA: Sound Static Control-Flow Graph Construction for EVM Bytecode
- Open Access
- 17 October 2024
- Published by Association for Computing Machinery (ACM)
- p. 10-17
Stability: An Abstract Domain for the Trend of Variation of Numerical Variables | Proceedings of the 10th ACM SIGPLAN International Workshop on Numerical and Symbolic Abstract Domains
State-of-the-art abstract domains for static analysis typically focus on over-approximating either the values a variable can hold at a specific program point or the relational dependencies among variables. In this paper, we aim to capture the trend of numerical values during program executions (e.g., increasing, decreasing, or stable) relative to preceding states. By integrating the Stability domain with numerical domains, we can verify co-/contra-variance relationships among potentially unrelated variables. This approach has promising applications for anomaly detection in complex software systems, and for the verification of functional requirements.
- 17 October 2024
- Published by Association for Computing Machinery (ACM)
- p. 10-17
Open AccessStability: An Abstract Domain for the Trend of Variation of Numerical Variables | Proceedings of the 10th ACM SIGPLAN International Workshop on Numerical and Symbolic Abstract Domains
State-of-the-art abstract domains for static analysis typically focus on over-approximating either the values a variable can hold at a specific program point or the relational dependencies among variables. In this paper, we aim to capture the trend of numerical values during program executions (e.g., increasing, decreasing, or stable) relative to preceding states. By integrating the Stability domain with numerical domains, we can verify co-/contra-variance relationships among potentially unrelated variables. This approach has promising applications for anomaly detection in complex software systems, and for the verification of functional requirements.
- Open Access
- 17 October 2024
- Published by Association for Computing Machinery (ACM)
- p. 18-25
Towards a High Level Linter for Data Science
Due to its interdisciplinary nature, the development of data science code is subject to a wide range of potential mistakes that can easily compromise the final results. Several tools have been proposed that can help the data scientist in identifying the most common, low level programming issues. We discuss the steps needed to implement a tool that is rather meant to focus on higher level errors that are specific of the data science pipeline. To this end, we propose a static analysis assigning ad hoc abstract datatypes to the program variables, which are then checked for consistency when calling functions defined in data science libraries. By adopting a descriptive (rather than prescriptive) abstract type system, we obtain a linter tool reporting data science related code smells. While being still work in progress, the current prototype is able to identify and report the code smells contained in several examples of questionable data science code.
- 17 October 2024
- Published by Association for Computing Machinery (ACM)
- p. 18-25
Open AccessTowards a High Level Linter for Data Science
Due to its interdisciplinary nature, the development of data science code is subject to a wide range of potential mistakes that can easily compromise the final results. Several tools have been proposed that can help the data scientist in identifying the most common, low level programming issues. We discuss the steps needed to implement a tool that is rather meant to focus on higher level errors that are specific of the data science pipeline. To this end, we propose a static analysis assigning ad hoc abstract datatypes to the program variables, which are then checked for consistency when calling functions defined in data science libraries. By adopting a descriptive (rather than prescriptive) abstract type system, we obtain a linter tool reporting data science related code smells. While being still work in progress, the current prototype is able to identify and report the code smells contained in several examples of questionable data science code.
- Open Access
- 20 September 2024
- Published by Association for Computing Machinery (ACM)
- p. 11-16
Towards a Sound Construction of EVM Bytecode Control-Flow Graphs
Ethereum enables the creation and execution of decentralized applications through smart contracts, that are compiled to Ethereum Virtual Machine (EVM) bytecode. Once deployed in the blockchain, the bytecode is immutable; hence, ensuring that smart contracts are bug-free before their deployment is of utmost importance. A crucial preliminary step for any effective static analysis of EVM bytecode is the extraction of the control-flow graph (CFG): this presents significant challenges due to potentially statically unknown jump destinations. In this paper we present a novel approach, based on abstract interpretation, aiming at building a sound CFG from EVM bytecode smart contracts. Our analysis, which is implemented in our static analyzer EVMLiSA, is based on a parametric abstract domain that approximates concrete execution stacks at each program point as an l-sized set of abstract stacks of maximal height h; the results of the analysis are then used to resolve the jump destinations at jump nodes. In our preliminary experiments, by fine-tuning the analysis parameters, EVMLiSA builds sound CFGs for all smart contracts where permanent storage-related opcodes do not influence jump destinations.
- 20 September 2024
- Published by Association for Computing Machinery (ACM)
- p. 11-16
Open AccessTowards a Sound Construction of EVM Bytecode Control-Flow Graphs
Ethereum enables the creation and execution of decentralized applications through smart contracts, that are compiled to Ethereum Virtual Machine (EVM) bytecode. Once deployed in the blockchain, the bytecode is immutable; hence, ensuring that smart contracts are bug-free before their deployment is of utmost importance. A crucial preliminary step for any effective static analysis of EVM bytecode is the extraction of the control-flow graph (CFG): this presents significant challenges due to potentially statically unknown jump destinations. In this paper we present a novel approach, based on abstract interpretation, aiming at building a sound CFG from EVM bytecode smart contracts. Our analysis, which is implemented in our static analyzer EVMLiSA, is based on a parametric abstract domain that approximates concrete execution stacks at each program point as an l-sized set of abstract stacks of maximal height h; the results of the analysis are then used to resolve the jump destinations at jump nodes. In our preliminary experiments, by fine-tuning the analysis parameters, EVMLiSA builds sound CFGs for all smart contracts where permanent storage-related opcodes do not influence jump destinations.
- Open Access
- 27 August 2024
- Published by Springer Nature in International Journal on Software Tools for Technology Transfer
- Vol. 26 (5) , 573-588
Speeding up static analysis with the split operator
In the context of abstract interpretation-based static analysis, we propose a new abstract operator modeling the split of control flow paths: the goal of the operator is to enable a more efficient analysis when using abstract domains that are computationally expensive, having no negative effect on precision, and occasionally resulting in a more precise analysis. We focus on the case of conditional branches guarded by numeric linear constraints, including implicit numerical branches. We provide an experimental evaluation of real-world test cases, showing that by using the split operator we can achieve significant efficiency improvements with respect to the classical approach for a static analysis based on the domain of convex polyhedra. We also briefly discuss the applicability of this new operator to different, possibly non-numeric abstract domains.
- 27 August 2024
- Published by Springer Nature in International Journal on Software Tools for Technology Transfer
- Vol. 26 (5) , 573-588
Open AccessSpeeding up static analysis with the split operator
In the context of abstract interpretation-based static analysis, we propose a new abstract operator modeling the split of control flow paths: the goal of the operator is to enable a more efficient analysis when using abstract domains that are computationally expensive, having no negative effect on precision, and occasionally resulting in a more precise analysis. We focus on the case of conditional branches guarded by numeric linear constraints, including implicit numerical branches. We provide an experimental evaluation of real-world test cases, showing that by using the split operator we can achieve significant efficiency improvements with respect to the classical approach for a static analysis based on the domain of convex polyhedra. We also briefly discuss the applicability of this new operator to different, possibly non-numeric abstract domains.
- Open Access
- 29 January 2024
- Published by Springer Nature in Software and Systems Modeling
- Vol. 23 (2) , 403-426
P-stable abstractions of hybrid systems
Stability is a fundamental requirement of dynamical systems. Most of the works concentrate on verifying stability for a given stability region. In this paper, we tackle the problem of synthesizing $${\mathbb {P}}$$ -stable abstractions. Intuitively, the $${\mathbb {P}}$$ -stable abstraction of a dynamical system characterizes the transitions between stability regions in response to external inputs. The stability regions are not given—rather, they are synthesized as their most precise representation with respect to a given set of predicates $${\mathbb {P}}$$ . A $${\mathbb {P}}$$ -stable abstraction is enriched by timing information derived from the duration of stabilization. We implement a synthesis algorithm in the framework of Abstract Interpretation that allows different degrees of approximation. We show the representational power of $${\mathbb {P}}$$ -stable abstractions that provide a high-level account of the behavior of the system with respect to stability, and we experimentally evaluate the effectiveness of the algorithm in synthesizing $${\mathbb {P}}$$ -stable abstractions for significant systems.- 29 January 2024
- Published by Springer Nature in Software and Systems Modeling
- Vol. 23 (2) , 403-426
Open AccessP-stable abstractions of hybrid systems
Stability is a fundamental requirement of dynamical systems. Most of the works concentrate on verifying stability for a given stability region. In this paper, we tackle the problem of synthesizing $${\mathbb {P}}$$ -stable abstractions. Intuitively, the $${\mathbb {P}}$$ -stable abstraction of a dynamical system characterizes the transitions between stability regions in response to external inputs. The stability regions are not given—rather, they are synthesized as their most precise representation with respect to a given set of predicates $${\mathbb {P}}$$ . A $${\mathbb {P}}$$ -stable abstraction is enriched by timing information derived from the duration of stabilization. We implement a synthesis algorithm in the framework of Abstract Interpretation that allows different degrees of approximation. We show the representational power of $${\mathbb {P}}$$ -stable abstractions that provide a high-level account of the behavior of the system with respect to stability, and we experimentally evaluate the effectiveness of the algorithm in synthesizing $${\mathbb {P}}$$ -stable abstractions for significant systems. - 24 October 2023
- Published by Springer Nature
- p. 65-83
Unconstrained Variable Oracles for Faster Numeric Static Analyses
- 24 October 2023
- Published by Springer Nature
- p. 65-83
Unconstrained Variable Oracles for Faster Numeric Static Analyses