Languages and Language Components
language workbench does have special mechanisms to extend, adapt and
compose languages. Such mechanisms however live from available
Therefore MontiCore provides a number of well defined languages, that
can be used for various purposes on their own, but also as components
for further language definitions. Actually, some of the languages are
compositions and derivations of others.
The following list contains a usable subset of these language
(components) developed using MontiCore. Please also have a look at
our literature references
for further information on many of the languages.
- UML/P is a derivation from UML, especially suited for
agile development. See language definition and method in
- UML/P Class Diagrams for data structures
- UML/P Object Diagrams for exemplaric
situations: constructive as well as testing
- OCL/P as Java-variant of the OCL with a nice
logic, set-compresnsion etc.
- UML/P Statecharts for behavior
- UML/P Sequence Diagrams for interaction
- Activity Diagrams for workflows and
requirements (an extension to the book)
- MontiArc ADL
is an architectural definition language for component and connector models
with enhanced connection facilities, hierarchical decomposition etc.
and provides a simulator [HRR12].
is a DSL for expressing deltas on MontiArc component definitions, which
allows to model software product lines in a bottom
allows specifying component variability fully integrated
within the component hierarchy located at variation points in component definitions.
- Java as full language as well as source for Java
expressions, statements, attribute or method
- FeatureDSL is a DSL for feature diagrams in software product
- DeltaCD is a DSL for expressing deltas on class
diagrams, which allows to model software product lines in a bottom
- Airspace Constraint Specification Language is a DSL
used to specify critical situations in an airspace
including airplanes, weather, flight conditions and much more
- clArc DSL Family:
- Cloud Architecture Description Language: used to
model of architectures of cloud-based systems; based
- Target Description Language: used to model the
infrastructure architecture of cloud-based systems.
- Mapping Description Language: used to model
deployments between software and infrastructure
- Architecture Scenario Description Language: used to
model scenario-based test cases for software
- I/O-TestDSL for the
definition of stream-based, input-output related black-box
tests for architecture definition languages like
to model architecture and behavior for robotics
applications based on MontiArc.
a modeling language for robotic assembly processes.
- cdViews is a DSL used to model partial views on class
- RBAC for Role-Based Access Control in enterprise
- MontiWis is a family of DSLs for the model-based,
generative development of web information systems among
others based on class diagrams, activity diagrams and
- HQL (Hibernate Query Language)
- SQL the well known DB query language; used for embedding
e.g. into other languages.
- XML the basic infrastructure for all XML dialects
- CarOLO DSLs for autonomic driving. This among others
contains a DSL for defining road scenarios with moving
vehicles as well a obstacles suited for laser, lidar, radar
and camera sensors. (Part of the Darpa Urban Challenge 2007)
- MontiCore itself uses a family of DSLs for the
definition of DSLs, i.e., their grammars.
Less well elaborated, but also available are the following
components. E.g. checking of context conditions or the type system is
not complete or the language has not been migrated to recent version
of the MontiCore language workbench.
- C++ and its sublanguages for expressions, statements
and definitions (but no generics, no defines, cocos are incomplete)