  This report presents MontiArc, a modeling language for the description of
Component & Connector architectures. A component is a unit executing
computations and/or storing data. Information flow between components is
modeled via unidirectional connectors connecting typed, directed ports of the
interfaces of components. Language features of the ADL MontiArc include
hierarchical decomposition of components, subtyping by structural inheritance,
component type definitions and reference declarations for reuse, generic
component types and configurable components, syntactic sugar for connectors,
and controlled implicit creation of connections and subcomponent declarations.
This technical report gives an overview of the MontiArc language and is a
reference for the MontiArc grammar intended to enable reuse and extension of
MontiArc and MontiArc related tools. MontiArc is implemented using the DSL
framework MontiCore. Available tools include an editor with syntax highlighting
and code completion as well as a simulation framework with a Java code
generator.
