The Java Modeling Language (JML) is a behavioral interface specification language that can be used to specify the behavior of Java modules. It combines the design by contract approach of Eiffel and the model-based specification approach of the Larch family of interface specification languages, with some elements of the refinement calculus.
Demeter/Java allows you to write your Java programs in a much more reusable form, called the adaptive form. You reuse all your Java knowledge and learn a design language on top of Java. The two important features of the design language are: Traversals and Visitors. Demeter/Java enforces correct use of the Visitor Design pattern in complex applications. The Visitor Design pattern is directly supported in the executable design language which is on top of Java.
The documentation names these features: G is a superset of Java, G and Java can work together, Variable types are implied when declared and initialized, Automatic type casting, Store and send functions as parameters, Script classes, context, loading and calling, Template Strings: Strings with embedded expressions, Dynamic Dispatch: Runtime method invocation and field access
The goal of the MetaJ project is the development of a generic protocol-based self-applicative interpreter for Java. The basic idea is to develop a generic reification procedure which can be used to reify any class of the interpreter. Currently, we have defined a reification scheme and we have built a reflective interpreter from a non-reflective interpreter for an essential subset of Java.
Correlate is a concurrent object-oriented language with a metalevel architecture that makes it easier to develop distributed programs
Hojo (Higer-Order functions & JavaTM Objects) is an interpreted language, which provides a high-level, dynamic interface to the Java Virtual Machine (JVM) on which it is run. Hojo allows higer-order functions, contains full syntactical support for collections, maps and arbitrary-precision numbers, and provides a wide range of automatical type conversions, as well as some additional built-in operators. The lexical syntax of the language can be dynamically configured through a meta language, such that e.g. custom operators can be defined.
Foo is a “new” language, and its interpreter. The main caracteristics are: Full object-orientation, Dynamic message, Written in Java, Full integration inside the JVM. It will be usefull to write small scripts and to build quickly a prototype, and it can be easily embedded inside any application.