[great-users] Transforming data between non-equivalent applications

Aditya Agrawal Aditya at isis.vanderbilt.edu
Thu Apr 8 18:51:10 CDT 2004


> I want to be able to do a round-trip lossless data exchange with them.
> The user must be able to import the project CADML <---- ESML, do
> modifications into CADML, then re-export to ESML and continue working
> there, and data should not be lost, e.g. the user should not need to
> re-enter the modes into the components when he goes back into ESML.
> 
> I believe this is a common problem, isn't it? Often when you
> interoperate two applications, they don't capture exactly the same
> properties.

[Adi] 
There are two different scenarios.

1. Both languages have the same expressive power, while both also have
some extra high-level concept. In this case you can map these extra
concepts into equivalent concepts in the other language. In textual
languages the example is say C++ and Java.

2. One language is a subset and/or captures less information. E.g. C++
and assembly. In this case if you transform C++ to assembly code you
cannot transform back assembly to get the same C++ code. There are other
cases where you only transform part of the information.

In these cases the reverse transformation usually works as follows: Say
you have a starting model M1 and you transform a part to a different
language and the model is called A1. Now you have modified A1 and made
it A2. The reverse process will use A2 and M1 together to produce M2.

I hope this answers your question.

Thanks,
Adi


More information about the great-users mailing list