Lava is an experimental, innovative, object-oriented, interpretive programming language and an associated programming environment LavaPE which provides syntax-sensitive point-and-click style structure editors instead of text editors for program editing.
- Visual object-oriented programming with structure editors
- Syntax-directed editing renders syntax errors impossible
- Semantic errors are reported the moment they occur
- Complete, gapless initialization checks at programming time
- Virtual types: Classes and packages may have type parameters
- Strict separation of class interfaces and class implementations
- Pre- / post-conditions may be attached to methods, invariants to classes
- Lava distinguishes immutable value objects from variable state objects
- Lava distinguishes constituents and acquaintances of Lava objects
- Lava clarifies the data-flow by being a single-assignment language
Thanks for Lavape, it's perfect!