In the last years almost all families of programming languages, from imperative to functional, logic, object-oriented and machine code, have been subject to static analysis by abstract interpretation. The use of a principled approach to static analysis based on the theory of abstract interpretation provided mathematical tools to reason about program properties and allowed for the rigorous and incremental design of precise and scalable static analyzers, ensuring soundness by construction. The large variety of abstract domains for many different programming languages, the ability to combine and refine them with standard abstract interpretation tools and the availability of mature abstract domain libraries allowed easily porting, reusing and experimenting with techniques born in a specific family to other programming languages and properties. Since the use of abstract interpretation for the analysis of object-oriented languages is less common than in other application fields of static analysis, in order to increase its adoption, we advocate the need to establish a common interface for designing and implementing abstract domains for the static analysis of Java-like programs. This interface should allow developing abstract domains pluggable in a generic abstract interpreter, as it is customary, for example, in abstract interpretation-based static analysis of numerical properties.

On the Need for a Common API for Abstract Domains of Object-Oriented Programs

Amato G.;Meo M. C.;Scozzari F.
2022-01-01

Abstract

In the last years almost all families of programming languages, from imperative to functional, logic, object-oriented and machine code, have been subject to static analysis by abstract interpretation. The use of a principled approach to static analysis based on the theory of abstract interpretation provided mathematical tools to reason about program properties and allowed for the rigorous and incremental design of precise and scalable static analyzers, ensuring soundness by construction. The large variety of abstract domains for many different programming languages, the ability to combine and refine them with standard abstract interpretation tools and the availability of mature abstract domain libraries allowed easily porting, reusing and experimenting with techniques born in a specific family to other programming languages and properties. Since the use of abstract interpretation for the analysis of object-oriented languages is less common than in other application fields of static analysis, in order to increase its adoption, we advocate the need to establish a common interface for designing and implementing abstract domains for the static analysis of Java-like programs. This interface should allow developing abstract domains pluggable in a generic abstract interpreter, as it is customary, for example, in abstract interpretation-based static analysis of numerical properties.
2022
FTfJP '22
9798400707841
File in questo prodotto:
Non ci sono file associati a questo prodotto.

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/11564/821431
 Attenzione

Attenzione! I dati visualizzati non sono stati sottoposti a validazione da parte dell'ateneo

Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus 0
  • ???jsp.display-item.citation.isi??? ND
social impact