Model specification, model transformation and code generation
ReMoDeL Tools
The current version ReMoDeL v3 specifies metamodels and model
transformations in a bespoke concept modelling language, using Java readers,
writers and compilers that convert these into executable Java libraries and
transformation programs. A description of these reader, writer and compiler
tools will be given below.
ReMoDeL Version 3 Tools
ReMoDeL v3 provides a simple declarative language for specifying
metamodels and model transformations. The native syntax of ReMoDeL may be read and
and written, or cross-compiled to Java. The complete ReMoDeL package includes the
metamodel for parse trees (in remodel.meta), the input, output and
cross-compiler tools (in remodel.io) and the utility library to support
generated Java (in remodel.util).
ReMoDeL v3 Readers, Writers and Compilers
Tools for processing ReMoDeL metamodels:
MetamodelReader is a parser for metamodels and will build a
parse tree from a metamodel.met input file.
MetamodelWriter is a writer for metamodels and will write a
metamodel.met output file from a metamodel parse tree.
MetamodelCompiler is a compiler for metamodels and will create
a Java package of classes, modelling the concepts of the metamodel, from a
metamodel parse tree.
Tools for processing ReMoDeL model transformations.
TransformReader is a parser for transformations and will build a
parse tree from a transform.tra input file.
TransformWriter is a writer for transformations and will write a
transform.tra output file from a transformation parse tree.
MetamodelCompiler is a compiler for transformations and will create
a Java package containing a class capable of executing the specified model transformation,
from a transformation parse tree.
Tools for processing ReMoDeL model instances.
ModelReader is an unmarshaller for building a Java model in memory
from a model.mod input file. The model consists of instances of Java classes that were
compiled from the relevant metamodel.
ModelWriter is a marshaller for serialising a Java model in memory
to a model.mod output file. The model consists of instances of Java classes that were
compiled from the relevant metamodel.
In normal usage, the designer will specify a source metamodel, a target metamodel and a
model transformation in the native ReMoDeL syntax. The appropriate readers and compilers
will then be used to translate these into Java packages. Finally, the designer will write
a Java main program that reads a model instance of the source metamodel, applies the
compiled model transformation, and writes the model instance of the target metamodel.