Pietro Abate

dblp:92/2885 · DBLP profile ↗
← Back
10ranked-venue papers
9as first author
0since 2021 · last 2020
—ORCID · none

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

Software engineering, systems software and programming languages · 8 · 7 first-authorArtificial intelligence and machine learning · 2 · 2 first-authorTheory of computation · 2 · 2 first-authorDatabases, data management, data science and information retrieval · 1 · 1 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
1 paper
Programming languages and type systems · 100%

Topics — the 2 heaviest of 3, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Programming languages and type systems › type inference
local type inference
0.212015
Polymorphic Functions with Set-Theoretic Types: Part 2: Local Type Inference and Type Reconstruction · POPL 2015
Programming languages and type systems
type inference
0.212015
Polymorphic Functions with Set-Theoretic Types: Part 2: Local Type Inference and Type Reconstruction · POPL 2015
YearPublicationVenuePosition
2020 Dependency Solving Is Still Hard, but We Are Getting Better at It
abstract
Dependency solving is a hard (NP-complete) problem in all non-trivial component models due to either mutually incompatible versions of the same packages or explicitly declared package conflicts. As such, software upgrade planning needs to rely on highly specialized dependency solvers, lest falling into pitfalls such as incompleteness—a combination of package versions that satisfy dependency constraints does exist, but the package manager is unable to find it. In this paper we look back at proposals from dependency solving research dating back a few years. Specifically, we review the idea of treating dependency solving as a separate concern in package manager implementations, relying on generic dependency solvers based on tried and tested techniques such as SAT solving, PBO, MILP, etc. By conducting a census of dependency solving capabilities in state-of-the-art package managers we conclude that some proposals are starting to take off (e.g., SAT-based dependency solving) while—with few exceptions—others have not (e.g., outsourcing dependency solving to reusable components). We reflect on why that has been the case and look at novel challenges for dependency solving that have emerged since.
Pietro Abate, Roberto Di Cosmo, Georgios Gousios, Stefano Zacchiroli
SANER1
2015 Mining Component Repositories for Installability Issues
abstract
Component repositories play an increasingly relevant role in software life-cycle management, from software distribution to end-user, to deployment and upgrade management. Software components shipped via such repositories are equipped with rich metadata that describe their relationship (e.g., Dependencies and conflicts) with other components. In this practice paper we show how to use a tool, distcheck, that uses component metadata to identify all the components in a repository that cannot be installed (e.g., Due to unsatisfiable dependencies), provides detailed information to help developers understanding the cause of the problem, and fix it in the repository. We report about detailed analyses of several repositories: the Debian distribution, the OPAM package collection, and Drupal modules. In each case, distcheck is able to efficiently identify not installable components and provide valuable explanations of the issues. Our experience provides solid ground for generalizing the use of distcheck to other component repositories.
Pietro Abate, Roberto Di Cosmo, Louis Gesbert, Fabrice Le Fessant, Ralf Treinen, Stefano Zacchiroli
MSR1
2015 Polymorphic Functions with Set-Theoretic Types: Part 2: Local Type Inference and Type Reconstruction
abstract
This article is the second part of a two articles series about the definition of higher order polymorphic functions in a type system with recursive types and set-theoretic type connectives (unions, intersections, and negations).
Giuseppe Castagna, Kim Nguyen 0001, Zhiwu Xu 0001, Pietro Abate
POPL4
2014 Learning from the future of component repositories
Pietro Abate, Roberto Di Cosmo, Ralf Treinen, Stefano Zacchiroli
Sci. Comput. Program.1
2013 A modular package manager architecture
Pietro Abate, Roberto Di Cosmo, Ralf Treinen, Stefano Zacchiroli
Inf. Softw. Technol.1
2012 Dependency solving: A separate concern in component evolution management
Pietro Abate, Roberto Di Cosmo, Ralf Treinen, Stefano Zacchiroli
J. Syst. Softw.1
2009 Strong dependencies between software components
abstract
Component-based systems often describe context requirements in terms of explicit inter-component dependencies. Studying large instances of such systems - such as free and open source software (FOSS) distributions - in terms of declared dependencies between packages is appealing. It is however also misleading when the language to express dependencies is as expressive as Boolean formulae, which is often the case. In such settings, a more appropriate notion of component dependency exists: strong dependency. This paper introduces such notion as a first step towards modeling semantic, rather then syntactic, inter-component relationships. Furthermore, a notion of component sensitivity is derived from strong dependencies, with applications to quality assurance and to the evaluation of upgrade risks. An empirical study of strong dependencies and sensitivity is presented, in the context of one of the largest, freely available, component-based system.
Pietro Abate, Roberto Di Cosmo, Jaap Boender, Stefano Zacchiroli
ESEM1
2007 One-Pass Tableaux for Computation Tree Logic
Pietro Abate, Rajeev Goré, Florian Widmann
LPAR1
2003 The Tableaux Work Bench
Pietro Abate, Rajeev Goré
TABLEAUX1
2002 A scalable approach to the design of SW architectures with dynamically create/destroyed components
abstract
The architecture of component based software systems is classified as being static or dynamic, depending on whether the component number and the component connections are fixed a priori or can change at run time. Most work in the field of formal method based architectural description languages has focused on static architectures, as well as dynamic architectures where the architectural specification does not scale with respect to the components that can be created or destroyed at run time. In this paper we start from PADL, a graphical, hierarchical, process algebra based language for the description of static software architectures. We then enrich its syntax and semantics in order to provide scalable specifications of software architectures where some components are dynamically created and destroyed. We show that the construction of the new language allows the architectural checks developed for PADL to be reused for the detection of architectural mismatches in the description of dynamic software architectures.
Pietro Abate, Marco Bernardo 0001
SEKE1