Aspect-Oriented
abc: the AspectBench Compiler for AspectJ, Aspect Browser, AspectJ, AspectJ, 0.8b5: Real-world AOP tool simplifies OO , Concerning AOP and Inheritance, DemeterJ, DJ, EAOP tool, HyperJ [IBM], JAC (Java Aspect Components)
Bali
Java with a spoonful of syntactic sugar: proposed set of additions to make Java terser and safer. Terseness makes languages easier to read, write, maintain. Ideas from Abundance (Byte Magazine Oct 1986), Eiffel, Pascal, Delphi, Smalltalk, PL/I, Algol-68, Forth, even COBOL.
Borneo
Modification of the Java language designed to have true support for the IEEE 754 floating point standard.
GJ: Generic Java
Support for generics. Superset of the Java programming language. Compatible with existing libraries. [Freeware]
Groovy
Open-source pure Java implementation of a strongly-typed Genetic Programming experimentation platform. Project home.
Jass
Java with assertions, spoken: jazz, like the music. Improvement of JaWA language extension. Gives Java the concepts of Design by Contract from Bertrand Meyer, and Eiffel, and extends them with new features. [Open Source, GPL]
JavaParty
A minimal extension to Java easing distributed parallel programming of cluster computers. A source code transformation automatically generates a distributed pure Java program based on RMI or KaRMI.
Javassist
Supports load-time and runtime behavioural reflection in Java by allowing classes to be modified by Java code as they are loaded in. [Freeware, source available]
JaWA
Java With Assertions, an extension of Java by assertions, a concept borrowed from Bertrand Meyer, and Eiffel. Still available, superseded by Jass.
jContractor
Supports Design By Contract in Java. Discovers "contracts" during class loading and instruments the class bytecodes on-the-fly to check run-time contract violations. [Apache Open Source Licence]
JJ
Simplified subset of Java (supersedes Jr), and online environment for learning programming: simple, made for beginners, includes assertions and Design by Contract from Bertrand Meyer and Eiffel; class tested over 2 years, free accounts available.
JMangler
A framework for load-time transformation of Java programs. [Open Source, LGPL]
JWIG
Java extensions for high-level Web service development; Java-based high-level language to develop interactive Web services; merges main features of <bigwig> language into Java by providing explicit support for Web service sessions, safe XHTML dynamic document building.
Kiev
Prolog-like engine, multimethods, parameterized types (derived from Pizza), closures (derived from Pizza), arithmetic types, type states and cases (derived from Pizza), 'foreach' statement, global method and variable definitions, virtual fields, variable number of arguments of methods, project, incremental compiling. [Open Source, GPL]
MetaJ
A generic protocol-based self-applicative interpreter for Java. Revolves around a generic reification procedure which can be used to reify any class of the interpreter.
Nextgen
An extension of Java and GJ to support polymophic methods while perserving static type information (no erasure). For research purposes.
OpenJava
Extensible language based on Java. OpenJava MOP (Metaobject Protocol) is the extension interface of the language. Via the MOP, programmers can customize the language to implement new language mechanisms.
Pizza
A variant of Java that adds parametric polymorphism, first-class functions, and class cases and pattern matching to the language. The compiler compiles into Java byte code so the binaries can be run on a normal JVM. [Freeware]
PolyJ
Java with support for generic programming in the form of parameterized types. Provides constrained parametric polymorphism, with advantages over some other proposals for adding genericity to Java. [Open Source, GPL]
Ptolemy II
Set of Java packages supporting heterogeneous, concurrent modeling and design. [Open Source, BDL]
The G Programming Language
Provides meta-programming capabilities and advanced programming language features in Java.
The Java Modeling Language (JML)
A behavioral interface specification language that can be used to specify the behavior of Java modules.