The BaseLanguage is an MPS' counterpart to Java, since it shares with Java almost the same set of constructs. MPS is the most common target of code generation and the most extensively extended language at the same time.
In order to simplify integration with Java, it is possible to specify the classpath for all modules in MPS. Classes found on the classpath will then be automatically imported into @java_stub models and so can be used directly in programs that use the BaseLanguage.
The frequently extended concepts of MPS include:
- Expression. Constructs, which are evaluated to some results like 1, "abc", etc.
- Statement. Constructs, which can be contained on a method level like if/while/synchronized statement.
- Type. Types of variables, like int, double.
- IOperation. Constructs, which can be placed after a dot like in node.parent. The parent element is a IOperation here.
- GenericCreator. Constructs, which can be used to instantiate various elements.