The Java Compiler Kit
The Java Compiler Kit is a straightforward implementation of a Java compiler, designed with extensibility in mind. In building the JKit compiler, the aims were: firstly, to help with teaching compilers by considering an implementation for a fully fledged language (Java), rather than a stripped-down imitation language; secondly, to aid research in programming languages, compilers and verification. With JKit you can easily prototype new extensions to the Java language, or implement completely new languages and compile them down to Java Bytecode.
NOTE: You can find the final resting place for JKit on GitHub!
OwnKit: Inferring Modularly Checkable Ownership Annotations for Java. Constantine Dymnikov, David J. Pearce and Alex Potanin. In Australasian Software Engineering Conference (ASWEC), pages 181--190, 2013. ©IEEE
JPure: a Modular Purity System for Java. David J. Pearce. In Conference on Compiler Construction (CC), pages 104--123, 2011. ©Springer
Formalisation and Implementation of an Algorithm for Bytecode Verification of @NonNull Types. Chris Male, David J. Pearce, Alex Potanin and Constantine Dymnikov. In Science of Computer Programming, 76 (7), pages 587--608, 2011. ©Elsevier