Maximum Likelihood Java Bytecode Analyzer
MaLiJAn is a tool implementation of Maximum Likelihood Analysis introduced in Maximum Likelihood Analysis of Algorithms and Data Structures. It allows automatic average case analyses of Java Bytecode programs with arbitrary input distributions. The generated results may be in terms of abstract cost measures like number of comparisons in sorting algorithms (provided by the user through code annotations), or the exact number of executed bytecode instructions.
To try MaLiJAn out, simply download the client application below, extract the tar archive to some folder and run java -jar malijan-client.jar. For parts of the computations, MaLiJAn uses a Mathematica server backend hosted on our servers, so you will need internet access.
The example project shows an analysis of a classic Quicksort implementation in the random permutation model. There, MaLiJAn reproduces the expected numbers of swaps and comparisons known from the literature. It also determines the expected number of executed bytecode instructions to be roughly 18 n ln(n).
If you encounter any problems or you have suggestions relating to MaLiJAn please feel free to write an email to Sebastian Wild.