Acceleo和Xpand有什么区别?

and*_*ers 2 java eclipse mdd xpand acceleo

我有一个基于自定义元模型的DSL,而后者又基于EMF/Ecore.我想弄清楚选择哪种解决方案,我无法在任何地方找到任何体面的比较.

有没有人有任何理由为什么我应该选择一个而不是另一个?

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

sbe*_*eau 6

首先,我想知道为什么你认为Acceleo比Xpand更难学,而两种语言都有差异(例如块和分隔符),它们具有相似的结构.我不会详细说明两种语言中的所有元素,但是,例如,我没有看到如下之类的区别:

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

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

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

我对Xpand工具不是很熟悉,但你可以在他们的维基上找到更多关于它的信息.另一方面,Acceleo包含一个语法高亮,代码完成,错误检测,重构等编辑器.它还包含调试器,分析器,Ant和Maven支持.您还可以轻松地将您的生成器作为Eclipse插件部署到其他用户,或者在常规Java应用程序中使用Eclipse.您可以在此处找到有关Acceleo的更多信息.您可以在视频中看到Obeo网络上Acceleo的大部分功能(需要注册).

最后,关于xPand的最新活动发生在一年前,而Acceleo正在积极开发.如果需要,您甚至可以在github上关注Acceleo开发.

Stephane Begaudeau

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