-
Notifications
You must be signed in to change notification settings - Fork 10
Home
Gianluca Amato edited this page Sep 5, 2013
·
7 revisions
Jandom is an abstract interpretation based static analyzer which supports multiple target languages, multiple domains, multiple strategies, and so on. It is the successor of Random and it is written in Scala.
At the moment, functionalities are limited. It only supports
- abstract domains
- the interval domain
- the domain of parallelotopes (but it is an unsafe implementation)
- numerical domains supported by the Parma Polyhedra Library
- a pair sharing abstract domain defined by Spoto and Secci in the paper Pair-Sharing Analysis of Object-Oriented Programs, SAS '05.
- analysis based on widening and narrowing
- delayed widening
- localized widening/narrowing
- preliminary support for inter-procedural analyses
- target languages
- simple imperative programs in a pseudo C syntax
- linear transition systems
- preliminary support for Java bytecode through the Jimple intermediate representation of the Soot library
The name Jandom is temporary (suggestions are welcomed!) and stands for JVM based Analyzer for Numerical DOMains. It is a bad name, since Jandom also supports non-numerical domains.
Jandom uses the following technologies:
- Scala 2.10 as the programming language
- sbt as the build tool
- the Parma Polyhedra Library library for most of its numerical domains
- ScalaNLP Breeze for the Parallelotope domain
- ASM and Soot for the analysis of Java bytecode
- Caliper for benchmarking
- ScalaTest and ScalaCheck for unit testing
The mailing list jandom-devel@googlegroups.com is used to report commits and discuss the development of Jandom.