Gilgul is an extension to Java, specifically supported by an augmented JVM.
One of the key features seems to be allowing an object reference to actually be a reference-to-a-reference but still used without the programmer being aware of the double indirection.
For those of you with C/C++ backgrounds, gilgul seems to add pointer to a pointer with automagic deference semantics.
The examples on the site seem to indicate that it could be used to solve some of the same problems solved by AOP, while at other times, seems to be a distinct architectural method (see their state pattern example).
Looks cool. Guaranteed to be stuck in academia of course, since it so radically mutates the familiar Java concepts and isn't bytecode-compatible with the JVMs in the wild.
Oh well.
Object identity is usually regarded as a corner-stone of object-oriented programming. The observation that this concept in fact combines two distinct notions lies at the heart of Gilgul's model that provides the conceptual basis for the programming language Gilgul. Its central idea is a strict separation of these notions, namely the notions of reference and comparison.
Gilgul's model can be illustrated with an implementation technique called Identity Through Indirection [KC86]: Here, a reference to an object is realized as an object oriented pointer (OOP). An OOP points to an entry in an object table which holds the actual memory address of the object (see figure 1). Since Gilgul's model needs not to be restricted to the implementation technique of an object table, it is only claimed that object references point to entries which hold referents that represent the actual objects. Contrary to Java, where references themselves are immutable, it is possible to manipulate referents in Gilgul and in this way, to replace objects at runtime.