java - Acceleo 和 Xpand 有什么区别?

标签 java eclipse acceleo mdd xpand

我有一个基于自定义元模型的 DSL,而该元模型又基于 EMF/Ecore。我正在尝试找出选择哪种解决方案,但在任何地方都找不到任何合适的比较。

有人有任何理由让我选择其中之一吗?

目前我所知道的是Acceleo使用的是OMG标准化语言,但它似乎比Xpand更难使用。

最佳答案

首先,我想知道为什么您认为 Acceleo 比 Xpand 更难学,虽然两种语言都有差异(例如 block 和分隔符),但它们具有非常相似的结构。我不会详细介绍两种语言的所有元素,但是,例如,我看不出以下内容之间有什么区别:

«FOREACH myAttributes AS a»«a.name»«ENDFOREACH»

[for (a: Attribute|myAttributes)][a.name/][/for]

两者都是基于模板的语言,因此它们具有完全相同的结构。 Acceleo 和 Xpand 之间的主要区别在于 Acceleo 基于 OMG 和工具的 MOFM2T 和 OCL 标准。

我对 Xpand 工具不是很熟悉,但您可以在他们的 wiki 上找到更多相关信息。 。另一侧的 Acceleo 包含一个编辑器,具有语法突出显示、代码完成、错误检测、重构等功能。它还包含一个调试器、一个分析器、Ant 和 Maven 支持。您还可以轻松地将生成器部署为其他用户的 Eclipse 插件,或者在 Eclipse 之外的常规 Java 应用程序中使用它们。您可以在 Acceleo here 上找到更多信息。您可以在 Obeo Network 上的视频中看到 Acceleo 的大部分功能。 (需要注册)。

最后,xPand 上的最新 Activity 发生 a year ago而 Acceleo 是 actively发达。您甚至可以关注 github 上的 Acceleo 开发如果你愿意的话。

斯蒂芬·贝戈多

免责声明:我是 Acceleo 开发团队的成员之一。

关于java - Acceleo 和 Xpand 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7402003/

相关文章:

eclipse-emf - 在 FOR 循环内递增变量

java - 战舰游戏船只放置错误

java - 如何最大化 JFrame 的高度?

java - mouseMoved 事件似乎只被调用一次

java - 需要使用 Jdbc 程序访问 Hive 元数据表

java - 尝试在独立模式下执行 Acceleo 模块时遇到问题

java - 出现错误无法找到元素 'soapenv:Envelope' 的声明

java - Eclipse 错误 : javax. imageio.IIOException:无法读取输入文件

C++:类 "X"没有名为 "Y"的成员

eclipse - 不同 Ecore 模型的引用 Ecore 模型路径