我在几个项目中使用了Eclipse Xtext 。我喜欢在 Ecore(元)模型上轻松定义语法并让所有内容为您生成,包括很棒的 Eclipse 插件编辑器,但我对底层EMF 框架感到非常不舒服,因为所有东西都硬连线在静态字段中。
最近我遇到了 Jetbrains 的MPS(元编程系统)。它基于完全不同的哲学。Xtext 用于创建基于文本的 DSL,为您生成解析器(并实例化那些 EObject),而在 MPS 创建的语言中,可以直接编辑底层模型结构。到目前为止,我明白了。
有没有人使用这两种 DSL 工具来指出在使用它们方面的主要区别、预期的用例和受众、复杂性、学习曲线(老实说,开始使用 Xtext 应该对 EMF 的胆量有很多了解) ,代码生成等?