表面语法与抽象语法
这是摘自Jean Bézivin的“From Object Composition to Model Transformation with the MDA”一文中关于OMG的4层标准建模栈与文本式编程语言定义的对照图示。虽然大致上对应,但在定义表面语法上(即M2的抽象语法所对应的具体语法),MOF似乎缺乏设施。虽然有MOF-XMI及文本式文法做为补救,但这本质上是走回文本编程语言定义的道路,而不是可视化图形设计语言的定义方法。

MOF的图形方式所定义的UML(如UML各版规范中的类图描述),也只能定义UML语言的抽象语法,而不是表面语法,这导致的问题就是:UML模型在视觉上的同意多形(似乎正符合IP的品味)和简陋性(没有图元布局和序关系定义)。

后者所带来的一个案例是:无法仅用MOF的图形方式定义像OCL这样的文本语言,而需要另一个OCL文法来定义OCL的表面语法,这是否意味着以MOF的图形方式所定义的OCL抽象语法的多余?当然不是,MOF的图形方式定义OCL的假设是:OCL程序经过表面语法解析且正确。那现在的问题是:OCL工具实现者会把OCL文法所定义的表面语法与MOF的图形方式所定义的抽象语法:正确且不出错地联系起来吗?MOF的图形定义方法(+OCL约束)具有属性文法的表现强度吗?用来定义某语言的抽象语法与表面语法的语言的差异性(类图+OCL 与EBNF对同一概念表述的差异性)。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-06-13
  • 2021-05-26
  • 2021-06-23
  • 2022-12-23
  • 2022-12-23
  • 2022-02-28
猜你喜欢
  • 2021-08-20
  • 2021-11-26
  • 2021-06-02
  • 2021-09-29
  • 2021-08-31
  • 2021-12-21
  • 2021-06-25
相关资源
相似解决方案