10

这两个框架都处理元模型:

您是否有使用这些工具基于元模型转换的实际应用示例?

4

3 回答 3

11

我们使用 MPS创建了整个错误跟踪器。代码生成不是目标,而是意味着获得一些可执行代码。目标是为开发人员提供一个工具,让他们能够以最小的努力创建 DSL。

MPS 很酷的一点是它还为您提供了适用于您的语言的 IDE。并且您创建的不同 DSL 是兼容的,即您可以创建使用闭包扩展 Java 的 DSL 和启用外部方法的另一个 DSL,并且这些扩展将一起工作。

于 2010-10-07T18:01:56.400 回答
7

它们在存储元模型的文档方面有所不同

关于XText本文说明了一种用法,即创建自己的编程语言和特定领域语言 (DSL)。

一旦你有了一种语言,你就想处理它,这通常意味着将你的模型转换为另一种表示。
负责此转换的工具称为生成器,由一堆转换模板 (eG XPand) 和一些执行它们的代码组成。在某些情况下,模型会被读入并应用转换来生成代码。

这种模型转换的示例

dot3zest附带一个 DOT 到 Zest 解释器(现在使用为 DOT 语法生成的 Xtext 开关 API),它支持 ad-hoc DOT 边缘定义。

替代文字


关于 MPS,这里有一系列实际示例
例如将代码生成到 GPL,例如 Java、C#、C++ 或 XML

替代文字
(来源:googlecode.com

于 2010-07-28T19:19:03.703 回答
2

我认为 XText 的主要用途首先是从您定义的语法创建一个 DSL,并为您自动生成一个 eclipse 工作台。其次,它可以将您的 DSL 中编写的脚本转换为 java。XText2 的内置表达式是一个优点。该框架为您提供了一个免费的 IDE,以支持您创建的编写 DSL。DSL 是提供的终极产品。它可以用来从现实世界中抽象出规则和逻辑。例如,在我们的项目中,产品配置规则。只有专家知道他们,所以他们在你创建的 DSL 中写了一些。

于 2011-08-18T13:25:19.050 回答