Home » Modeling » M2T (model-to-text transformation) » Model to Text : case of "unsuported by target language"(How to state a given model construct is not supported in a given target language ?)
Model to Text : case of "unsuported by target language" [message #557185] |
Sun, 05 September 2010 20:12 |
Yannick Duchene (Hibou57) Messages: 50 Registered: September 2010 Location: Metz (France - Europe) |
Member |
|
|
Hi all,
An overall question : given a transformation script using OMG's standard Model to Text language as supported by Acceleo 3, and given a target language ; what would be the better way to make the script state it could not successfully be applied ? I had a look at the OMG reference in this area, and did not find any thing.
Did I miss something or is there a tricky way to do or is there simply no way ? What is the state ?
Alternatively, is there a non-standard Acceleo extension in that area ?
Have a nice day all.
[Updated on: Sun, 05 September 2010 20:13] Report message to a moderator
|
|
|
Re: Model to Text : case of "unsuported by target language" [message #557220 is a reply to message #557185] |
Mon, 06 September 2010 07:42 |
|
This is a multi-part message in MIME format.
--------------010709030209040400010105
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Hi Yannick,
I am not sure I really understand your need : You would say you are
trying to generate Java code, and the particular Acceleo script would
generate incorrect Java, you would like Acceleo to tell you beforehand
that the syntax of your target "after generation" is wrong?
If yes, this simply cannot be done. Acceleo generates "text" and has no
knowledge of the target's syntax.
If not, I'll need a little more explanation to understand what your use
case is.
Laurent Goubet
Obeo
Yannick Duch wrote:
> Hi all,
>
> An overall question : given a transformation script using OMG's standard
> Model to Text language as supported by Acceleo 3, and given a target
> language ; what would be the better way to make the script state it
> could not successfully be applied ? I had a look at the OMG reference in
> this area, and did not find any thing.
>
> Did I miss something or there a tricky way to do or is there simply no
> way ? What is the state ?
>
> Alternatively, is there a non-standard Acceleo extension in that area ?
>
> Have a nice day all.
>
--------------010709030209040400010105
Content-Type: text/x-vcard; charset=utf-8;
name="laurent_goubet.vcf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="laurent_goubet.vcf"
YmVnaW46dmNhcmQNCmZuOkxhdXJlbnQgR291YmV0DQpuOkdvdWJldDtMYXVy ZW50DQpvcmc6
PGEgaHJlZj0iaHR0cDovL3d3dy5vYmVvLmZyIj5PYmVvPC9hPg0KZW1haWw7 aW50ZXJuZXQ6
bGF1cmVudC5nb3ViZXRAb2Jlby5mcg0KdXJsOmh0dHA6Ly93d3cub2Jlby5m cg0KdmVyc2lv
bjoyLjENCmVuZDp2Y2FyZA0KDQo=
--------------010709030209040400010105--
|
|
|
Re: Model to Text : case of "unsuported by target language" [message #557236 is a reply to message #557220] |
Mon, 06 September 2010 08:45 |
Yannick Duchene (Hibou57) Messages: 50 Registered: September 2010 Location: Metz (France - Europe) |
Member |
|
|
Hello once again Laurent,
Laurent Goubet |
I am not sure I really understand your need : You would say you are
trying to generate Java code, and the particular Acceleo script would
generate incorrect Java, you would like Acceleo to tell you beforehand
that the syntax of your target "after generation" is wrong?
|
Sorry for being unclear. A try to be more explicit : let A, be an UML model, with no profile (no subset, no extensions), let B be a target language (not Java actually, don't want to tell more, as I am just at the step of first attempts, nothing really produced so far). UML, is a reach language, with its own concept, annotations, etc ; the language B may not support by nature or restriction profile, some of the construct available with UML and which A use.
Example: Imagine a construct appearing in A and which cannot be mapped in the target language B : what should the M2T script do so ? I though this was better to state the transformation failed, suggesting either the model should be redesigned or another target language should be choose (i.e. B may not be suitable as a target language for the model expressed in A).
Is there a way either in the standard M2T or even as an Acceleo non-standard extension to return an error when this kind of circumstance occurs ?
Note: alternatively, this may apply also when a transformation UML to AnyTargetLanguage is incomplete (like unsupported construct in the actually state of the art or of the script version).
Laurent Goubet | If yes, this simply cannot be done. Acceleo generates "text" and has no
knowledge of the target's syntax.
|
I guess this is the expected behavior indeed, don't worry about it
Have a nice day
Y.D.
P.S. Should I use mail, newsreader or web to write here ? (seems I receive mails, so wonder if it is a mailing list instead of a forum)
|
|
|
Re: Model to Text : case of "unsuported by target language" [message #557249 is a reply to message #557236] |
Mon, 06 September 2010 09:27 |
|
This is a multi-part message in MIME format.
--------------010908050508090900070309
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Yannick,
I can't help but think I had it nailed on my first attempt (I used Java
as an example, I could have said C, Fortran, Pascal, Scala... without
changing the rest of my message). The usual workflow in cases such as
these is to let Acceleo do his job (generate the target) then let the
target language's tools determine whether it is correct; in the case of
code, the dedicated compiler.
Yet I'd like to confirm some things : first, if your target is a
modeling language, you might want to look into Model to Model
transformations such as ATL instead of Model to Text. With such
languages you can validate that all of your constructs are supported in
the target, as that is specified by the target's metamodel.
Second, if your target is textual, your only option at validation (other
than letting the compiler do its job afterwards) would be to create a
metamodel describing your language and doing your generation in two
steps : first, Model to Model transformation through ATL to map your UML
concepts to your target's specific concepts, then Model to Text through
Acceleo to generate the actual code.
To answer your PS : you can use both newsreader (newsgroup
eclipse.modeling.m2t) or forum for these, I happen to be using a
newsreader :p.
Laurent Goubet
Obeo
Yannick Duch wrote:
> Hello once again Laurent,
>
> Laurent Goubet
>> I am not sure I really understand your need : You would say you are
>> trying to generate Java code, and the particular Acceleo script would
>> generate incorrect Java, you would like Acceleo to tell you beforehand
>> that the syntax of your target "after generation" is wrong?
>
> Sorry for being unclear. A try to be more explicit : let A, be an UML
> model, with no profile (no subset, no extensions), let B be a target
> language (not Java actually, don't want to tell more, as I am just at
> the step of first attempts, nothing really produced so far). UML, is a
> reach language, with its own concept, annotations, etc ; the language B
> may not support by nature or restriction profile, some of the construct
> available with UML and which A use.
>
> Example: Imagine a construct appearing in A and which cannot be mapped
> in the target language B : what should the M2T script do so ? I though
> this was better to state the transformation failed, suggesting either
> the model should be redesigned or another target language should be
> choose (i.e. B may not be suitable as a target language for the model
> expressed in A).
>
> Is there a way either in the standard M2T or even as an Acceleo
> non-standard extension to return an error when this kind of circumstance
> occurs ?
>
> Note: alternatively, this may apply also when a transformation UML to
> AnyTargetLanguage is incomplete (like unsupported construct in the
> actually state of the art or of the script version).
>
> Laurent Goubet
>> If yes, this simply cannot be done. Acceleo generates "text" and has
>> no knowledge of the target's syntax.
>
> I guess this is the expected behavior indeed, don't worry about it ;)
>
> Have a nice day
>
> Y.D.
>
>
>
> P.S. Should I use mail, newsreader or web to write here ? (seems I
> receive mails, so wonder if it is a mailing list instead of a forum)
>
--------------010908050508090900070309
Content-Type: text/x-vcard; charset=utf-8;
name="laurent_goubet.vcf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="laurent_goubet.vcf"
YmVnaW46dmNhcmQNCmZuOkxhdXJlbnQgR291YmV0DQpuOkdvdWJldDtMYXVy ZW50DQpvcmc6
PGEgaHJlZj0iaHR0cDovL3d3dy5vYmVvLmZyIj5PYmVvPC9hPg0KZW1haWw7 aW50ZXJuZXQ6
bGF1cmVudC5nb3ViZXRAb2Jlby5mcg0KdXJsOmh0dHA6Ly93d3cub2Jlby5m cg0KdmVyc2lv
bjoyLjENCmVuZDp2Y2FyZA0KDQo=
--------------010908050508090900070309--
|
|
| | |
Goto Forum:
Current Time: Thu Oct 10 01:39:42 GMT 2024
Powered by FUDForum. Page generated in 0.04842 seconds
|