Team Pop Art

Members
Overall Objectives
Scientific Foundations
Application Domains
Software
New Results
Contracts and Grants with Industry
Other Grants and Activities
Dissemination
Bibliography

Section: Software

APRON libray

The APRON library (http://apron.cri.ensmp.fr/library/ )is dedicated to the static analysis of the numerical variables of a program by Abstract Interpretation [45] . Its goal is threefold: provide ready-to-use numerical abstractions for analysis implementers, encourage the research in numerical abstract domains by providing a platform for integration and comparison, and provide a teaching and demonstration tool to disseminate knowledge on abstract interpretation.

Figure 1. Typical static analyser and examples of abstract domains
bertrand1

Motivation and Principles.

Many abstract domains have been designed and implemented for analysing the possible values of numerical variables during the execution of a program, cf. Fig.  1 . However their API diverge largely (datatypes, signatures, ...), which does not facilitate their diffusion and experimental comparison w.r.t. efficiency and precision aspects.

The APRON library aims to provide:

From an abstract domain implementor point of view, the benefits of the APRON library are:

For the client static analysis community, the benefits are an unified, higher-level interface, allows experimenting, comparing and combining abstract domains.

Implementation.

Fig.  2 depicts the organisation of the APRON library. The existing underlying libraries connect to the developper interface, using domain-independent datatypes, and exploiting common services. Independent libraries like PPL [34] can be connected using a wrapper. Client tools connect to the higher-level user interface, where variables (or addresses) and environments replace geometrical notions like dimensions and space dimensionality.

The APRON library is written in C ANSI, with an object-oriented and thread-safe design. Both multi-precision and floating-point numbers are supported. A wrapper for the OCaml language is available, and a C++ wrapper is on the way. It is distributed since june 2006 under the LGPL license and available at http://apron.cri.ensmp.fr/ .

Its developpement has still progressed much since. There are already many external users ( ProVal/Démons, LRI Orsay, France — Analysis of Computer Systems Group, New-York University, USA — Sierum software analysis platform, Kansas State University, USA — NEC Labs, Princeton, USA — EADS CCR, Paris, France — IRIT, Toulouse, France )

Figure 2. Organisation of the APRON library
bertrand2

previous
next

Logo Inria