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.
Category Archives: Link broken
xkjc
Kiev
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
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
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.
Javaa
The Javaa Bytecode Assembler is a program that converts code written in “Java Assembly Language” into a valid Java .class file.
Jamaica
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.