sukrutrao / IntervalAI

An abstract interpreter for an integer interval domain supporting basic operations for simple C programs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

IntervalAI

Build Status

An abstract interpreter based on the integer interval domain for simple C programs

Setup

Prerequisites

  • CBMC 5.8 (included as a submodule)
  • g++ with C++11 support

Building the project

Get the code. The directory containing this file shall be referred to as $INTERVALAI_ROOT

$ git clone --recurse-submodules https://github.com/sukrutrao/IntervalAI $INTERVALAI_ROOT

Build CBMC

$ cd $INTERVALAI_ROOT/IntervalAI/cbmc/src
$ make

Build IntervalAI

$ cd $INTERVALAI_ROOT/IntervalAI
$ mkdir build
$ cd build
$ cmake ..
$ make

Running IntervalAI

Go to INTERVALAI_ROOT/IntervalAI/build. Then, use

$ ./IntervalAI -m <mode> <goto-binary>

Information on modes available, and the restrictions on the input, can be found by using

$ ./IntervalAI -h

License

This code is provided under the MIT License.

Note: The code has a few known bugs, which are in the process of getting resolved.

About

An abstract interpreter for an integer interval domain supporting basic operations for simple C programs

License:MIT License


Languages

Language:C++ 97.1%Language:CMake 2.0%Language:Shell 0.9%