Prism Conclusion: Applicability to TUNES
Jim Little
jiml@inconnect.com
Tue, 12 Jan 1999 18:36:16 -0700
Laurent Martelli wrote:
>
> >>>>> "Jim" == Jim Little <jiml@inconnect.com> writes:
>
> Jim> that not only should we use domain abstraction, but we should
> Jim> use MULTIPLE domain abstractions.
>
> Multiple is the point. How can several domain abstractions interct
> with each other ? do theit meta-model have to inherit from a common
> meta-model ? I think this is the most difficult problem to tackle.
You've cut to the heart of the matter. At this time, I'm not directly
addressing this issue -- I'm just trying to create some useful SINGLE
domain metamodels. Even single abstractions is an area rich for
experimentation. (For example, even weird metamodels such as Befunge
(http://www.cats-eye.com/befunge/) can easily be represented in Prism.)
However, I do have some ideas about multiple domain abstraction.
Creating a set of metamodels which work closely together, a la
aspect-oriented programming, isn't that hard, relatively speaking. You
just design your metamodels to work together and create a translation
program which can weave them together.
What I want to do, though, is to say, "If you create your metamodel in
this way, your metamodel can be sewed together with any other metamodel
which does the same thing." That's a much harder task. I have some
ideas -- they involve well-defined interfaces on subsystems -- but not
anything I want to publish.
Please note that what I'm trying to do is NOT aspect weaving. It's like
a fine-grained version of compiler linking. Just as you can link
together a program from object code written in multiple languages, if
you're careful, I want to be able to link together systems from
subsystems defined in multiple metamodels.
Either way, a Prism compiler can store and reason about multiple models
and translation models simultaneously, so Prism is ready to support
multiple domain abstractions -- if somebody figures out the theoretical
issues.
Jim Little (jiml@inconnect.com)
Prism is at http://www.teleport.com/~sphere.