UML工具的代码生成功能背后的技术是什么?

时间:2010-06-28 17:44:37

标签: algorithm compiler-construction code-generation uml

我是一名工科学生,并决定我的最后一年项目。

许多候选人之一是具有代码生成功能的在线UML工具。但我没有采用编译器设计类,所以我不太了解代码生成技术。

我想了解我应该研究的技术,以便构建这样的东西。如果这些技术像编写编译器一样复杂,那么我可能不得不放弃这个想法。

5 个答案:

答案 0 :(得分:3)

编译实际上与the kind of code generation you are describing相反,所以我认为你不需要知道如何编写编译器。

代码生成可以像组合文本字符串或using templates一样简单,也可以像使用Reflection.Emit一样复杂,以便在运行时创建类。

我会从this Wikipedia article开始。

答案 1 :(得分:2)

创建UML工具是一个长期项目。你需要很多人来获得不同的专业知识,只有一个团队成员才能知道。 你的学术项目太雄心勃勃了。

从未做过的简单项目是从活动或状态图生成代码。您不应该尝试重新创建图形编辑器,因为这非常复杂,但只能使用xml解析器获取xmi导出并从中生成代码。这对你的论文来说是一个很好的6个月项目: - )

答案 2 :(得分:1)

大多数UML工具都会生成源代码。生成通常比编译器简单得多。例如,类图将具有表示类和这些类之间的链接(继承)的数据结构的集合。要生成输出,您需要遍历类对象,并为每个对象在目标语言的语法中“打印”出该对象的表示。

答案 3 :(得分:0)

我不确定您的代码生成究竟需要哪些功能,但我使用的UML工具在代码生成方面并不十分复杂。

我使用的工具只是创建文件并使用从输入派生的参数将函数名称放入其中。这不需要任何编译器的理解。大多数困难在于用户界面以及如何存储数据以简化代码生成。

答案 4 :(得分:0)

你可以在这里找到: http://yuml.mehttp://askuml.com