Lava

An experimental component-, pattern- and object-oriented programming language with parameterized ("virtual") types; the Lava programming environment (LavaPE) supports refactoring and provides a user interface with syntax-sensitive point-and-click style structure editors instead of text editors for program editing.