gpt4 book ai didi

dsl - Xtext 和 MPS 等不同语言工作台工具的优缺点?

转载 作者:行者123 更新时间:2023-12-03 14:37:41 24 4
gpt4 key购买 nike

有没有人使用过 Xtext、Spoofax 和 JetBrains 的 MPS 等语言工作台工具?我想尝试一下,但很难找到不同工具的良好比较。各自的优缺点是什么?

我希望构建生成 python 代码的 DSL,所以我特别有兴趣听取那些将这些工具之一与 python 一起使用的人的意见(这三个工具似乎都非常专注于 Java ......为什么会这样?)。 DLS 主要供我自己使用,所以我不太关心构建一个非常漂亮的 IDE,而是关心它是 KISS 来定义语法和编写代码生成器。对 DLS 进行类型检查/进行静态分析的能力也很酷。

我有点害怕走得太远,撞到一堵墙,然后意识到我所有的代码都是无法移植到其他任何东西的格式——这些工具有风险吗?特别是 MPS 似乎有点吓人,因为据我所知,您并没有真正生成基于文本的语法,而是为 AST 构建专门的编辑器。

最佳答案

Markus Voelter 在 se-radio 和 Software ArchitekTOUR 播客中比较了这三个。
基本思想是,Xtext 最常用,因此最稳定和文档化,它基于流行的 Eclipse 平台和建模生态系统 - 围绕它的 EMF。另一方面,它基于解析器并在内部使用 ANTLR,这意味着您可以定义的语法类型是有限的,并且语言不能轻易组合。
Spoofax 是一种学术产品,对这三者的采用最少。它也是基于解析器的,但在内部使用自己的解析器生成器,允许语言组合。
Jetbrains MPS 是基于投影的,这为语言设计者提供了很大的自由度并允许语言组合。 *t 也有坚实的支持。缺点可能是学习曲线。
这些工具都不是严格以 Java 为目标语言的代码生成器。 Xtext 使用 Xpand 模板,它们是纯文本。我真的不知道 Spoofax 中的代码生成是如何工作的。 MPS 有它的基本语言,据说它是 Java 的子集,但也有不同的选择。
我个人使用 Xtext 是因为它的简单性和成熟度,但是它的设计所带来的那些强大的限制使它不是一个非常适合 future 的选择。

关于dsl - Xtext 和 MPS 等不同语言工作台工具的优缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4380275/

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