main page

getting started








RWTH Aachen

Fachgruppe Informatik

The MontiCore Language Workbench

We are proud that we have released The MontiCore Reference Manual 5.0.
[HR17] Katrin Hölldobler, Bernhard Rumpe:
MontiCore 5 Language Workbench. Edition 2017.
Shaker, 2017.

MontiCore is a full-fledged language workbench for the design and realization of textual domain-specific languages (DSL). It enables the research of model-based software development methods employing a variety of DSLs and modeling languages. On top of this, MontiCore and its DSL products are successfully in use in academic and industrial research projects in various domains such as automotive software modeling, cloud architecture and security modeling, model-based robotics, smart energy management, neural network modeling. The design rationale of MontiCore is to provide a powerful and efficient workbench for the agile creation of DSLs along with their accompanying infrastructure such as analyses, transformations, and code generators. MontiCore features a functional and highly extensible architecture which allows to even further customize the DSL development process itself. A couple of noteworthy features of MontiCore are listed below:

  • MontiCore features:
    • Combined specification of concrete and abstract syntax in a context-free grammar
    • Customizable generation of parser and abstract syntax tree
    • Generation of analysis infrastructure including visitors
    • Adaptable grammar processing via interpreted Groovy scripts
    • Configurable logging and process reporting
    • Freemarker Template Engine for easy code generation
  • DSLs created with MontiCore:
    • Unified Modeling Language for Programming (UML/P)
    • MontiArc Architecture Description Language (ADL)
    • clArc - Cloud ADL Family
    • MontiArcAutomaton - ADL with automaton behavior specification
    • Airspace Constraint Specification Language - DSL for the specification of significant air traffic scenarios
    • MontiSecArc - ADL with security constraints
    • Java
    • and many more