SV: [gme-users] Transforming models into source code (e.g. C)

Attila Vizhanyo viza at
Wed Feb 1 10:41:07 CST 2006

> I have installed GReAT and looked into the samples included in the 
> distribution. It is difficult for me to see the big picture of how to 
> construct and separate the transformation rules in the right way 
> (where should I start). I will try to run the samples in the GReAT 
> debugger.

Please have a look at our tutorial to get started 
(GReAT\doc\Step-by-step GReAT Guide.pdf)

> I have read your paper (Model-Driven Software Development of 
> Model-Driven Tools: A Visually-Specified Code Generator for 
> Simulink/Stateflow), that describes how a SF model is transformed into 
> source code, this is actually what I am looking for.
> From the paper I understand that the source code is generated 
> directly using GReAT, could you describe the workflow of the tool 
> implemented in GReAT? how you generate source code directly, if I 
> understand the paper correctly.

The catch is that we created a metamodel for a stylized subset of C, 
called SFC. During the transformation, various SFC model objects are 
created upon finding various patterns of objects in the input StateFlow 
model. The GReAT code generator creates C++ code out of the GReAT 
transformation; this code is embedded into a Visual Studio C++ project, 
that contains (aside from the generated transformation code) a very 
straigtforward printer module, that traverses the SFC model, and prints 
out C code into a text file.

> From looking at the interpreter and GReAT approach, I think that 
> building an interpreter is the fastest approach right now. But I 
> expect the source model to be extended through the development, so 
> GReAT would probably be the right solution for us in the end. What you 
> said in your recommendations.

As I said, if you need to write a simple transformation only, BON 
interpreters suffice.
If you plan to extend the metamodels, or add complexity to the 
transformation, then going with GReAT will certainly help you to manage 
and maintain the transformation.


More information about the gme-users mailing list