Skip to content

mdrafiqulrabin/JavaTransformer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JavaTransformer

A tool to apply program transformations on Java (*.java) methods for generating semantic-preserving transformed programs.


Used Version(s):

  • openjdk 1.8.0_222
  • javaparser 3.24.4

JavaTransformer.jar:

  • Create Jar file with Maven:
$ mvn clean compile assembly:single
# Output: target/jar/JavaTransformer.jar
  • Create Jar file with Ant:
$ mvn dependency:copy-dependencies
$ ant jar
# Output: build/jar/JavaTransformer.jar
  • Given input and output path, execute jar:
    # input_path  = Input directory to the original programs.
    # output_path = Output directory to the transformed programs.
    $ java -jar JavaTransformer.jar "input_path" "output_path"
    
    Note:

    The scope of transformation is at the method level, so each (*.java) file should contain only a single method.
    To modify the scope, first check getParseUnit for CompilationUnit.
    Or, convert java files into single method-only files using JavaMethodExtractor before applying transformation.

Transformations:

  • BooleanExchange
  • LogStatement
  • LoopExchange
  • PermuteStatement
  • ReorderCondition
  • SwitchToIf
  • TryCatch
  • UnusedStatement
  • VariableRenaming

References:

About

Program Transformation Tool for Java Methods

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published