Jamie is a preprocessor for Java that fills the gap between interfaces and multiple inheritance. Jamie doesn’t give you multiple inheritance, though; it gives you multiple delegation (i.e., it gives you subclassing without subtyping). Jamie is a preprocessor that automates delegation. You run it on your code, and it essentially produces the Java code you otherwise would have had to write yourself.
Here is the authors description: “Kiev is an extension of Java language with closures, multi-methods, multiple inheritance, user-defined and overloaded operators, virtual fields (properties), packed fields and more. It also has an embedded, fully integrated AI engine. Kiev compiler supports plugins and allows easy meta-programming by direct tree rewriting. Kiev is now used as thebase compiler for SymADE (see)”
AspectJ is an aspect-oriented extension to Java designed to simplify the development and maintenance of a wide range of applications. AspectJ extends Java with aspects, which are a new kind of programming construct that facilitates the implementation of concerns that cross-cut a system.
Poor Man’s Genericity for Java is an implementation of parameterized classes (constrained parametric polymorphism) for Java. It is based on a “lowest common denominator” design that can be implemented easily on top of any existing Java compiler. We have implemented a fully working compiler that has been built by reusing Sun’s Java compiler almost without modifications: only the way in which source and byte-code files are loaded was changed to perform simple transformations on loaded files.
Jamaica, the JVM Macro Assembler, is an assembly language for JVM bytecode programming. It uses Java syntax to define a JVM class except for the method body that takes bytecode instructions, including Jamaica‘s built-in macros. In Jamaica, bytecode instructions use mnemonics and symbolic names for all variables, parameters, data fields, constants and labels. Jamaica is a simplified JVM assembly language. It does not support inner classes. Variables are all method-wide and are strongly-typed. Jamaica is a language facade for a Java class creation API, JavaClassCreator. This API closely mimics the Jamaica language, allows users to define a Java class with the same flow, and supports all the Jamaica instruction set and macros.