Project and Report Ideas:
Write a translator from a small (non-Java) language to JVM byte code.
Write a graphical simulator for (some or all of) the JVM.
Write a byte code compression utility and a corresponding class loader.
Write a byte code optimizer that tries to make better use of the stack operators.
Implement a new garbage collection strategy for an existing JVM implementation.
Survey, compare, and report on several obfuscators or reverse compilers.
Survey, compare, and report on several whole-program analysis techniques.
Survey and report on use of formal methods for specifying Java or byte code.
Do a careful performance comparison on several existing JIT compilers for some architecture.
Survey, compare, and report on algorithms for JIT compilation.
Small teams are encouraged.
Re-use of publicly-available tools is encouraged.
If Matrix is marked final and d is unmarked private and we compile with -O:
Sample times (seconds; 133MHz Pentium, 100 multiplies of a 60x60 double matrix):