Is MOF the kernel language of MDA langs family

Fig.2.4 shows a segment extracted from the book Concepts, Techniques, and Models of Computer Programming(ctmCP)

To seperate the Practical lang (P, PL) from the Kernel lang (K, KL),  we can use a namespace liked mechanism to rewrite the PL prog as follows:  
P::fun K::{ P::Sqr P::X K::} P::X K::* P::X K::end
P::B K::= K::{ P::Sqr K::{ P::Sqr P::A K::} K::}

Above shows that the constructions of KL can be  reused in a PL prog.
if PL is UML and KL is MOF:

1) how are MOF first-class concepts reused in UML, is an instance of MOF subset of an instance of UML?

2) how is an instance of UML translated into an instance of MOF?

3) how is an instance of MOF running and the result is still an instance of MOF?

4) if HUTN is a text lang for MOF, how is a HUTN prog running and the result can still  be described by HUTN?

Although the second question is partially solved by UML2MOF(a sub-tool of MDR), but i think the new abstractions of UML, such as Action, Message, Event are thrown away by UML2MOF.  That is to say that NO MOF first-class concepts are corresponding to them, such as the translation from an instance of UML::Message to an instance of MOF::Class will lose the meaning of UML::Message. This is key problem of MDA langs family.

This also give us a  tip: using what formalism (MOF,UML,CWM) to describe a grammar of a target lang is NOT the key concern, we can use any metamodel to describe the grammar, but can we give the real meaning to the target lang?

posted on 2005-08-21 23:11 阿飞外传 阅读(...) 评论(...) 编辑 收藏