/mini-symex-js

A mini symbolic execution engine for simple JavaScript programs

Primary LanguageJavaScript

mini-symex-js

A mini symbolic execution engine written in JavaScript, to illustrate some basic ideas of symbolic execution for beginners.

This work is inspired by mini-mc and mini-symex.

How to run?

  1. Prerequisites

Make sure to have python3, python3-disutils, and make installed on your MacOS/Linux machine. Otherwise, the installation of z3javascript may fail.

  1. Install dependencies
$ cd mini-symex-js
$ npm install --loglevel verbose # this may take a while to complete
$ cd node_modules/z3javascript
$ npm run prepublish
  1. Run demo
$ cd mini-symex-js
$ npm run symbolic
$ npm run concolic

Note: For MacOS, replace libz3.so in package.json with libz3.dylib