This repository is the implementation of algorithm given in A fix-point characterization of Herbrand equivalence of expressions in data flow frameworks by Jasine Babu, K. Murali Krishnan and Vineeth Paleri.
- Get JDK (Java Development Kit) in your computer. Check if you have JDK in your computer using
<$ java -version>command. - Get log4j API for logging. Follow the following Steps:
- Goto log4j website.
- Download apache-log4j-x.x.x.tar.gz from the specified site.
- Unzip and untar the downloaded file in /usr/local/ directory as follows:
$ gunzip apache-log4j-2.12.1-bin.tar.gz $ tar -xvf apache-log4j-2.12.1-bin.tar
- Now set the PATH and CLASSPATH appropriately.
$ pwd /usr/local/apache-log4j-2.12.1-bin $ export CLASSPATH=$CLASSPATH:apache-log4j-2.12.1-bin/log4j-core-2.12.1.jar $ export PATH=$PATH:/usr/local/apache-log4j-2.12.1-bin
- Clone this repository in your computer.
- Extract the files. Note: make sure that the directory in which you are extracting has a write permission.
- Go inside the HerbrandEquivalenceJB directory.
- Put your input files inside the inputFiles directory.
- Go to the src directory and run the following commands.
$ pwd /home/<username>/HerbrandEquivalenceJB/src $ javac herbrandEquivalence.java $ java herbrandEquivalence
- Program will generate/update the following files/folders.
- debug folder which contain the debug files. Debugging data of a input file will append to the existing debugging file. There are two types of files:
- level 0- Less detailed debugging files. Showing what are the outputs.
- level 1- More detailed debugging files. Showing in which all functions it went with their outputs and results.
- redundantExpression folder will contain the expressions which are redundant to compute because they are already computed beforehead. Each input file will contain its own redundant expression file named as .re.txt.
- transferedCode folder contain the modified input files which will run as same as input files other than the redundant expression need not be computed again. Each input file will contain its own transfered code file named as .tc.txt.
- debug folder which contain the debug files. Debugging data of a input file will append to the existing debugging file. There are two types of files: