IDEA-MPS和Eclipse-Xtext的实际用途是什么
这两个框架都处理元模型:IDEA-MPS和Eclipse-Xtext的实际用途是什么,eclipse,xtext,mps,Eclipse,Xtext,Mps,这两个框架都处理元模型: (日食) (JetBrain) 您是否有使用这些工具进行元模型转换的实际应用示例? 关于,举例说明了一种用法,即创建自己的编程语言和领域特定语言(DSL) 一旦有了一种语言,您就需要对其进行处理,这意味着通常要将您的模型转换为另一种表示形式。 负责此转换的设施称为生成器,由一组转换模板(例如,XPand)和一些执行这些模板的代码组成。在某些情况下,读入模型并应用转换生成代码 : ,它附带一个点对点解释器(现在使用为点语法生成的Xtext开关API),支持特殊点边缘定
- (日食)
- (JetBrain)
负责此转换的设施称为生成器,由一组转换模板(例如,
XPand
)和一些执行这些模板的代码组成。在某些情况下,读入模型并应用转换生成代码
:
,它附带一个点对点解释器(现在使用为点语法生成的Xtext开关API),支持特殊点边缘定义
关于MPS,您有,
像这样:
(来源:)我们使用MPS创建了一个整体。代码生成不是目标,而是指获得一些可执行代码。目标是为开发人员提供一个工具,使他们能够以最小的工作量创建DSL
MPS的酷之处在于它还为您的语言提供了一个IDE。您创建的不同DSL是兼容的,也就是说,您可以创建使用闭包扩展Java的DSL和另一个启用外部方法的DSL,这些扩展将协同工作 我认为XText的主要用途首先是根据您定义的语法创建一个DSL,并为您自动生成一个eclipse工作台。其次,它可以将DSL中编写的scrpit转换为java。XText2中的内置表达式是一个加号。
该框架为您提供了一个免费的IDE来支持您编写您创建的DSL。DSL是ulimate提供的产品。它可以用来从现实世界中抽象规则和逻辑。例如,在我们的项目中,产品配置规则。只有专家知道它们,所以他们会在您创建的DSL中编写一些。注意:a将说明两种框架的实际示例。关于差异,请看代码生成是最终目标还是我看得不够远?@S.R:不,最终目标仍然是模型转换。您将一个AST(抽象语法树)转换为另一个,这将为您提供:代码(代码生成)、节点(第一个示例中的节点图)或任何其他表示目标模型的AST。您能帮我找到java的闭包扩展吗?我找不到一些如何扩展java synthax的例子。要在MPS中使用java闭包,只需导入语言jetbrains.MPS.baseLanguage.closures