SPARTA

screenshot of SPARTA

SPARTA is a library of software components specially designed for building high-performance static analyzers based on the theory of Abstract Interpretation.

Overview

SPARTA is a library of software components designed for building high-performance static analyzers based on the theory of Abstract Interpretation. The purpose of SPARTA is to simplify the engineering of Abstract Interpretation by providing a set of software components that have a simple API and are highly performant.

Features

  • Mathematically Sound: Static analyzers built with SPARTA using the methodology of Abstract Interpretation guarantee that the semantic information they compute holds in all possible execution contexts considered.
  • Complex Property Inference: SPARTA allows analyzers to infer complex properties of programs, which can be finely tuned to control analysis time.
  • Industrial-Grade Static Analysis: SPARTA enables the development of industrial-grade static analysis tools without the need to start from scratch.

macOS

  1. Install Xcode with the command line tools installed.
  2. Install Boost 1.71 or later using homebrew.

Ubuntu (64-bit)

For Ubuntu 16.04 or later:

  1. Install Boost through the package manager.

For earlier versions of Ubuntu, a script is provided to install Boost.

Summary

SPARTA is a library that simplifies the engineering of static analyzers based on the theory of Abstract Interpretation. It provides software components with a simple API and high performance, allowing developers to focus on the semantics, partitioning, and abstraction of the analysis. SPARTA is used in the ReDex Android bytecode optimizer and has been successfully used to build scalable and sophisticated analyses.