gpt4 book ai didi

dsl - Jetbrains 的 MPS 和 Eclipse Xtext 之间的主要区别是什么?

转载 作者:行者123 更新时间:2023-12-03 06:02:24 27 4
gpt4 key购买 nike

我用过Eclipse Xtext在几个项目中。我喜欢在 Ecore(元)模型上轻松定义语法,并让一切为您生成,包括很棒的 Eclipse 插件编辑器,但我对底层 EMF framework 感到非常不舒服。一切都硬连线在静态字段中。

最近我发现了 Jetbrains 的 MPS (Meta Programming System) 。它基于完全不同的哲学。 Xtext 用于创建基于文本的 DSL,为您生成解析器(并实例化这些 EObject),而在 MPS 创建的语言中,可以直接编辑底层模型结构。到目前为止我明白了。

有没有人使用过这两种 DSL 工具来指出它们在使用、预期用例和受众、复杂性、学习曲线方面的主要区别(说实话,要开始使用 Xtext,人们应该了解很多关于EMF 的胆量)、代码生成等?

最佳答案

Xtext 是一种传统的基于解析器的方法,适用于普通文本文件。这些可以被邮寄、存储并与任何版本控制系统进行比较,甚至可以使用您最喜欢的命令行工具在编辑器之外进行修改。它与 Eclipse EMF 紧密集成,并且与 Eclipse 生态系统中的一大堆工具配合得很好。最近,它演变成(并且仍在这样做)某种“编程语言开发工具包”,它允许您支持所有类型的附加工具。

另一边的 MPS 使用基于投影的编辑器,当您在环境中工作时,该编辑器“看起来”像文本。底层存储格式是特定于工具的(读:没有特殊程序就无法使用),并且不解析纯文本文件。这提供了一些巨大的优势,例如嵌入任意语言(例如,Java 中的 SQL 中的正则表达式)。该工具链能够以模型到模型转换的形式生成,作为编辑器,一开始感觉不寻常,但也很强大。

这两个工具都以某种方式将您锁定在它们的世界中(MPS/Eclipse)。尽管您可以在 headless 模式下运行两者,但无法在另一个 IDE 中轻松启动 Xtext 编辑器。 MPS 也是如此。我认为 Xtext 是“更开放”的,因为它一方面可以处理普通文本文件,另一方面可以很好地与现有工具(一般是 EMF 和 Eclipse)配合使用。

这能回答你的问题吗?如果您有更详细的问题,我会尽力为您提供更准确的答案。

关于dsl - Jetbrains 的 MPS 和 Eclipse Xtext 之间的主要区别是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2603134/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com