RANDOM
R-based Analyzer for Numerical Domains
Previous version: 0.3 - 23/03/2012
Download the analyzer: random-0.3.0.tgz.
Previous version: 0.3-rc1 - 07/11/2011
Authors: Gianluca Amato, Maurizio Parton and Francesca Scozzari
Random is a static analyzer of programs, based on the theory
of abstract interpretation. It can analyze simple imperative R
programs (with the standard constructs while, for, if-then-else) with
4 abstract domains: intervals, template parallelotopes, their combination and parallelotopes.
Parallelotopes are a family of new abstract domains recently
introduced in “Deriving
numerical abstract domains via Principal Component Analysis”,
SAS 2010.
For a brief presentation of the tool Random you may read “A tool which mines partial execution traces to improve static analysis”, RV 2010.
Download the analyzer: random-0.3-rc1.tgz.
The analyzer has been tested on Ubuntu Linux, but it should work on any Linux distribution.
You need:
R - the interactive environment with the additional packages RGtk2 and CairoDevice
(on Ubuntu install the packages r-recommended, r-cran-rgtk2, r-cran-cairodevice)GNU Multiple Precision Arithmetic Library with the development library (on Ubuntu install libgmp, libgmp-dev)
gcc – or another equivalent C compiler
How to start:
Download random-0.3-rc1.tgz into a folder and unpack it
run 'R' from the same folder
from the R prompt, type:
install.packages("gmp")
install.packages("ieeeround")
install.packages("fastICA")
install.packages("proto")
install.packages("plyr")
from the R prompt, type 'source(“random.R”)'
Previous version: 0.2-rc1 - random-0.2-rc1.tgz - 30/10/2010
Screenshots:
Are you impatient to try it? You need:
R - the interactive environment
gmp – the R package for Multiple Precision Arithmetic (download here a version >= 0.4-12)
gcc – or another equivalent C compiler
Try Random in few steps:
Download random-0.2-rc1.tgz into a folder and unpack it
type 'make' from the same folder
run 'R' from the same folder
from the R prompt, type 'source(“random.R”)'
Previous version: 0.1 - random-0.1.tgz - 17/08/2010 (some R functions to test Random: incr.r, xyline.r)
Try Random version 0.1 in few steps:
Download random-0.1.tgz into a folder and unpack it
type 'make' from the same folder
run 'R' from the same folder
from the R prompt, load Random with 'source(“random.r”)'
load any R program you may want to analyze, with 'source(“myprogram.r”)'
start Random with 'compare.analysis(function_name)'
Random is a prototype, which is currently under development at the Department of Science, University of Chieti-Pescara, Italy. For any information, you may contact the authors: amato@sci.unich.it, parton@sci.unich.it and scozzari@sci.unich.it
Disclaimer: the analyzer is distribuited without any warrant of any kind, under the terms of the GNU GPLv3.