Model 代码生成和模型到文本转换之间的区别

Model 代码生成和模型到文本转换之间的区别,model,code-generation,transformation,Model,Code Generation,Transformation,我试图理解从模型生成代码(例如使用EMF)和使用Acceleo或Xpand进行模型到文本转换之间的具体区别。这两个概念都使用模型作为输入,而输出是基于模型的代码,以及编辑器等。到目前为止,我还没有使用任何M2T框架,这就是为什么我在理解这两个概念之间的实际差异时遇到一些问题的原因。请有人在这件事上给我一些启发,正面比较会很好 谢谢 它们在概念上是不同的 模型到文本的转换是从模型中提取代码的过程(技术)。根据源元模型和目标语言的不同,可以用多种方式定义这种转换。它与文本到模型相反,它提取一个分析源

我试图理解从模型生成代码(例如使用EMF)和使用Acceleo或Xpand进行模型到文本转换之间的具体区别。这两个概念都使用模型作为输入,而输出是基于模型的代码,以及编辑器等。到目前为止,我还没有使用任何M2T框架,这就是为什么我在理解这两个概念之间的实际差异时遇到一些问题的原因。请有人在这件事上给我一些启发,正面比较会很好


谢谢

它们在概念上是不同的

模型到文本的转换是从模型中提取代码的过程(技术)。根据源元模型和目标语言的不同,可以用多种方式定义这种转换。它与文本到模型相反,它提取一个分析源代码的模型

例如,您可以通过模型到文本的转换从UML提取和生成Java代码

例如,Acceleo是一种基于标准的工具,它使您能够将模型转换为文本。Acceleo需要模型(可能是.xml格式或standar.xmi)和一些您定义的模板(.mtl)

使用这些模板和Acceleo引擎,您将能够解析模型并生成所需的代码

总之:模型到文本是一个过程,Acceleo是开发和运行该过程的工具。


我希望这对你有帮助

谢谢你的回复。但我已经很清楚了。我试图理解的是,比方说,使用EMF从Ecore模型生成模型代码和使用Acceleo将xml格式的模型转换为(例如Java)代码之间的逻辑区别。当然,使用两种不同的框架,实现预期结果的过程也会有所不同。但除此之外,为什么要选择一个概念及其实现来反对另一个?从模型生成代码和将模型转换为代码有何区别?我找不到区别,@DanglishElse。我想我们谈论的是同一件事,用不同的词。我研究过这方面的理论(因为我现在正在开发一个项目),我看不出有什么不同。对我来说,我与Acceleo合作是因为我可以更深入地进行转型,以我的方式实现转型。但我认为这与结果或过程无关。。。这取决于你或你的团队的能力、知识等。我希望我现在解释得更好。对不起,我没有很好地提到你@DanglingElseI也看不出这两个概念之间有什么区别,除了它们如何工作等等。似乎这两个概念都从相同类型的输入(模型)实现了相同类型的输出(代码)。但两者之间肯定有不同之处。我不认为他们只是在术语上有所不同。好的,EMF是一个用于创建模型的框架,它还提供了从这些模型生成代码的后端,但是为什么它不被称为模型到文本的转换,因为它的主要方面是建模?此外,EMF不是从模型生成代码的唯一工具。如您所见,我有点困惑。EMF提供了模型和其他特性中的Java。Acceleo为每个转换提供了几个不同的模块(UML2Java、UML2C或其他),并允许您像我一样开发自己的模块。开发您的模块,您将能够定制您的转换。但是,我坚持认为,它们是不同的工具,没有不同的概念。例如:Eclipse/visualstudio/NetBeans等之间的区别是什么?它们在使用上是不同的,但在意义上没有区别。