论文部分内容阅读
自动代码生成,简单地说,就是将一些定义良好的输入标记或者模型转换成源码文本。定义良好的输入标记或模型可以是Simulink/Stateflow模型、UML模型等。解释源码文本的内容的目标语言可以是高级语言或机器语言,也可以是一种自定义的中间语言。自动代码生成过程与编译器的工作在概念上具有等价性。本文主要是研究基于Simulink/Stateflow模型生成ANSI C语言代码的自动代码生成工具的相关技术。主要内容为:1.研究基于模型的开发和Simulink/Stateflow对代码生成的支持机制。包括V-模型和Simulink/Stateflow层次化模型基础。2.研究分析已有的基于Simulink/Stateflow模型的自动生成代码工具如RTW、Gene-Auto和TargetLink的实现方式及其相关技术。3.开发自动代码生成系统的原型。在对相关研究基础和技术进行分析的基础上,本文实现了一个基于Simulink/Stateflow模型代码生成系统的原型。该工具对Simulink/Stateflow模型生成符合ANSI标准的C语言代码。该原型主要是以面向系统领域为主的SystemModel和面向目标语言为主的与领域无关的CodeModel两个中间模型为基础,将Simulink/Stateflow模型依次经过SystemModel和CodeModel的转换,最终生成符合ANSI标准的C语言代码。根据模型转换规则生成的测试用例测试模型的仿真和生成的代码上并对仿真的结果和代码运行的结果进行比较。以及使用将生成的代码和与RTW生成的代码进行比较这两种测试方法。测试整个自动代码生成系统以及所生成代码的正确性。最后,对本文中的工作内容进行了总结,并对其中存在的不足指明了未来的研究方向。本文的特点在于充分利用代码生成代码的思想,用ANTLR工具简化自动代码生成流程。模型转换过程中引入的两个中间模型使得自动代码生成系统独立于Simulink/Stateflow模型和目标代码。系统采用模块化的思想并将各模块的输入输出模型文本化,体现了系统的可扩展性和各模块之间的独立性。