0

我想了解 Eclipse 建模框架 ( EMF ) 相对于 DSL 的传统编译器开发的补充功能。

我清楚地理解 EMF 开发流程通常始于元模型的定义(或标准化模型的重用;如 UML),但这似乎与编译器中 AST 定义(例如 00 语言)的活动没有太大区别民俗学。由于异构技术,这甚至增加了补充工作。

然而我猜想,元模型通常可能比 AST 类具有更多的信息,因为它们显示为图形,因此 EMF 工具可以利用这些信息进行上下文检查。这就是区别吗?值得付出努力吗?

我也明白像 Xtext 这样的工具可能会以某种方式填补两个社区之间的空白。

4

1 回答 1

0

抽象语法树是一种纯数据结构。与此相反,EMF 模型由 EClassifiers 表示的数据及其 EAttributes 和 EReferences 以及由 EOperations 表示的行为组成。

然而,我猜想元模型通常比 AST 类具有更多的信息

所以,是的,你是对的。EMF 元模型包含的更多信息是操作。

值得努力吗?

这在很大程度上取决于您的用例。定义行为及其操作的数据通常被认为是良好的 OO 实践。

于 2013-01-13T13:53:38.227 回答