An open API service indexing awesome lists of open source software.

https://github.com/ilyasergey/reachability

Experimental implementation of k-CFA and Pushdown k-CFA with optional Abstract Garbage Collection for LambdaJS and a subset of Scheme programming language
https://github.com/ilyasergey/reachability

abstract-garbage-collection control-flow-analysis k-cfa pushdown-automaton scheme

Last synced: 6 months ago
JSON representation

Experimental implementation of k-CFA and Pushdown k-CFA with optional Abstract Garbage Collection for LambdaJS and a subset of Scheme programming language

Awesome Lists containing this project

README

        

Project structure:
-------------------

benchmarks -- a set of Scheme programs to test the analysis runner

lib -- necessary libraries: Scala SDK, compiler and ScalaTest

src -- source files

test -- Test suites, run by ScalaTest utility via ant script

build.xml -- Ant script

[UPDATE]

As of November 2015, this project has moved to the BSD licence.

------------------------------------------------------------------------------------

Use following commands to compile and test the project via Ant (in the project root directory):

ant all -- compiles the project from scratch, builds the JAR file and zipped sources

ant zip.project -- Packs all source files into the ZIP archive artifacts/reachability.zip

ant compile -- compile the project (incrementally)

ant run.tests -- Run ScalaTest suite

ant jar -- build an executable jar (Scala SDK included) and puts it into ./artifacts/

ant jar.no.scala -- build an executable jar (without Scala SDK) and puts it into ./artifacts/

------------------------------------------------------------------------------------
You can also compile it via IntelliJ IDEA 15 (with the Scala 2.9 libraries from ./lib).
------------------------------------------------------------------------------------

How to run:

-- for a compiled project
scala -cp ./out/production/reachability org.ucombinator.cfa.RunCFA [options] fileName

-- for an executable jar with Scala SDK included
java -jar artifactsGenericCFA.jar org.ucombinator.cfa.RunCFA [options] fileName

-- for an executable jar with NO Scala SDK included
scala -cp artifacts/GenericCFANoScala.jar org.ucombinator.cfa.RunCFA [options] fileName

------------------------------------------------------------------------------------

Implementation insights:

Grep for the tag (REMARK) in the code for some non-obvious insights.