Tools on Rewriting
-
Soot is a Java optimization framework. It provides four intermediate representations for analyzing and transforming Java bytecode: 1. Baf: a streamlined representation of bytecode which is simple to manipulate. 2. Jimple: a typed 3-address intermediate representation suitable for optimization. 3. Shimple: an SSA variation of Jimple. 4. Grimp: an aggregated version of Jimple suitable for decompilation and code inspection. Soot can be used as a stand alone tool to optimize or inspect class files, as well as a framework to develop optimizations or transformations on Java bytecode.
Unreleased versions can be found in the github repository....
-
The SToUT (Symbolic Computation Techniques for Unranked Terms) project provides a library for unification and anti-unification algorithms: unification with sequence variables, context sequence matching, rigid anti-unification for unranked terms and hedges, unranked second-order anti-unification, higher-order anti-unification, nominal anti-unification.