PAMunb / JimpleFramework

A Rascal implementation of the Jimple framework.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

inadequate package decomposition

rbonifacio opened this issue · comments

Currently, our organization in terms of packages is as follows:

io (IO utility functions for traversing the file system)
lang.jimple (AST + Decompiler)
lang.jimple.analysis (ControlFlowGraph)
lang.jimple.analysis.dataflow (DataFlow framework + DataFlow algorithms)
lang.jimple.analysis.ssa (conversion to the SSA format)
lang.jimple.core (execution context of the program analysis)
lang.jimple.internal (internal utility module for generating Java code from Jimple syntax)
lang.jimple.toolkit (CallGraph, SensitiveAnalysis, Global PP)
lang.jimple.toolkit.jimplify (Transformations for jimple code refinement)
lang.jimple.util (data type converterds (e.g.: signature to string) + Local PP)

We do think that the following is better:

lang.jimple.core: AST + ExecutionContext 
lang.jimple.toolkit: SSA, CallGraph, ControlFlowGraph
lang.jimple.analysys.dataflow: DataflowFramework + DataFlow algorithms
lang.jimple.analysys.security: SensitiveAnalysis
lang.jimple.decompiler: Decompiler, jimple transformations
lang.jimple.util: io, converters, ....