MontiCore 3-Level License model
MontiCore is a language workbench for an efficient development of domain-specific languages (DSLs). To prevent too many different public versions of the library itself, it is partly published under LGPL.
To be usable in commercial and any other forms of projects, the finally generated code is, however, completely freely available. Three levels of licenses are needed.
The MontiCore Languag Workbench deals with three levels of code:
(Level 3) MontiCore: the main libary constituting the LWB,
(Level 2) tool derivates, that are to a large extent generated by the MontiCore LWB, and
(Level 1) product code that is finally generated by tool derivates. This also includes analytical results, thus as results of consistency checks, code smells, test infrastructures, etc.
Each level has its own and different license:
(Level 3) MontiCore: the main LWB components are published under the LGPL license (see LGPL V3.0).
(Level 2) Tool derivate: when a tool is derived using the MontiCore language workbench, then the result falls under the BSD 3 Clause license (see BSD-3-Clause).
(Level 1) Product code: when a MontiCore tool derivate is used to generate code, the generated code is absolutely free for each form of use including commercial use without any license and thus without any restriction from MontiCore itself.
As a consequence using MontiCore during development is rather flexible and the final products do not have any restriction.
Please not that the developers of tools may impose their own form of restrictions i.e. licenses on their tools respectively the results generated by these tools.
MontiCore 3-level License on Files
This repository for the MontiCore language workbench contains three kinds of artifacts:
Java-files that are executed in the MontiCore LWB. They are under LGPL licence.
Java-files that belong to the runtime environment (RTE) and are thus copied to the generated code. They are under BSD 3 Clause license.
Templates executed during generation. They are also under BSD 3 Clause license, because parts of them are copied to the generated code.
As a result, a tool derivate (level 2) does not contain any LGPL code, but only BSD 3 Clause code. Executing the tool derivate then produces completely free code (level 1).
If questions appear e.g. on using MontiCore itself in a product or building an interpreter, please contact email@example.com.
The MontiCore 3 Level license is built on: