I read the article "GJ: Extending the JavaTM programming language with type parameters" [by Gilad Bracha, Martin Odersky, David Stoutamire, Philip Wadler, March 1998; revised August 1998]. It introduces the GJ compiler that is an extension of Java (during the time of JDK 1.2) which provided generics support. The current generics support in Java 5 is based on GJ.
GJ, per the article, is based on Pizza. "GJ is based closely on the handling of parametric types in Pizza".
This led me to search around for Pizza and other languages based on the Java programming language.
The Pizza compiler is hosted on sourceforge. Its current version is 1.1 [released 03-Jan-2002].
The Pizza language is an extension to Java with three new features:
- Generics (aka Parametric polymorphism)
- Function pointers (aka First-class functions)
- Class cases and pattern matching (aka Algebraic types)
The Pizza Tutorial explains the three new features listed above.
GJ - A Generic Java Language Extension - is currently on version 0.6m. It is a superset of the Java programming language and is compatible with existing libraries.
Bistro is a new programming language that integrates the best features of Smalltalk and Java. It is currently on version 3.5 [21-Apr-2002?]. You can read about Bistro in the language neutrality article.
Kiev is another language derived from Java. It was initially written in (and tries to be source compatible with) Pizza language. It is currently on version 0.09a.
You can check many more languages at the list of languages based on the Java VM.