MontiCore 3-Level License Model
MontiCore is a language workbench for an efficient
development of domain-specific languages (DSLs). All the code available
in these GitHub MontiCore projects
is published under three levels of licenses as discussed below.
For a full use of generated code in commercial and any other forms of projects, the finally generated code is, completely freely available, even though the main workbench itself has restrictions.
License Overview
The MontiCore Language Workbench deals with three levels of code:
-
(Level 3) MontiCore: the main library 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 more relaxing license:
-
(Level 1) Product code: the generated product code is absolutely free for each form of use including commercial use without any mentioning and thus without any restriction from MontiCore. Developers may even put their own License label on it.
-
(Level 2) Tool derivate: when a tool is derived using the MontiCore language workbench, then the result falls under the pretty liberal BSD 3 Clause license (see BSD-3-Clause).
-
(Level 3) MontiCore: the main LWB components are published in GitHub under the LGPL license (see LGPL V3.0).
As a consequence using MontiCore during development is rather liberal and the final products do not have any restriction.
Please note that this license level model holds for the MontiCore LWB and all related projects published in GitHub. For artefacts available from other sources, different licenses may apply. E.g. developers of tools may impose their own form of restrictions i.e. licenses on their tools respectively the results generated by these tools. Artefacts directly made available from RWTH Aachen and not published in GitHub are for the concretely granted purpose only and are not do be made public at all.
As usual in software development: For statistics, scientific reasons, quality and performance improvement, the tools occasionally send the fully anonymous statistics report (see file) to the developers.
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 of tool code. They are also only under BSD 3 Clause license, because parts of them are copied to the generated code.
MontiCore 3-Level License on Tool and Language Repositories
Other MontiCore repositories contain complete or incomplete tools as well as MontiCore language components. They contain again three kinds of artifacts:
-
Grammars that are used to define language components in the MontiCore LWB. They are under LGPL licence, but these can be extended by own grammars freely.
-
Java-files that are executed in the tool (belonging to the tool RTE). They are under BSD 3 Clause license.
-
Java-files that belong to the product runtime environment (RTE) are completely free without restriction.
-
Templates executed by the tool during generation of product code. They also are completely free without restriction, 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 monticore@se-rwth.de.
Underlying Licenses
The MontiCore 3 Level license is built on:
Please also note the general disclaimer from the BSD 3 Clause license on liability, etc.
Included Software
This product includes the following software, both having their own licenses, compatible with MontiCores licenses:
Further Information
-
see also MontiCore Reference Manual
-
MontiCore project - MontiCore