国内刊号:11-2560/TP
国际刊号:1000-9825
发布日期:
作者:苏卓,王东艳,杨镒箫,张明睿,姜宇,孙家广
单位:苏卓,清华大学软件学院, 北京 100084;信息系统安全教育部重点实验室(清华大学), 北京 10008411,王东艳,北京大学信息科学技术学院, 北京 10087102,杨镒箫,清华大学软件学院, 北京 100084;信息系统安全教育部重点实验室(清华大学), 北京 10008403,张明睿,清华大学软件学院, 北京 100084;信息系统安全教育部重点实验室(清华大学), 北京 10008404,姜宇,清华大学软件学院, 北京 100084;信息系统安全教育部重点实验室(清华大学), 北京 10008405,孙家广,清华大学软件学院, 北京 100084;信息系统安全教育部重点实验室(清华大学), 北京 10008406
关键词:模型驱动开发;数据流;代码生成;分支;嵌入式系统
基金:国家自然科学基金(62022046,U1911401,61802223);科技部重点研发计划(2019YFB1706200);华为清华可信研究项目(20192000794)
模型驱动开发以其低错误率、易仿真、易验证的特点,在嵌入式软件开发中被广泛应用.近年来,基于模型的嵌入式软件开发方法及相应工具也在逐渐发展和完善.数据流模型是各种建模工具中使用最为频繁的语义模型,然而,各种工具对于数据流模型的代码生成能力却参差不齐,特别是对于数据分支组件的支持,当前主流的建模工具都采用各种方式来回避复杂的分支建模及对应的代码生成.但是,分支建模是非常重要的,使用分支组件可以更清晰地表现出数据流的数据传递逻辑.为了解决复杂分支建模带来的代码生成难题,针对具有复杂分支组合的数据流模型.提出了一种基于分支调度标记的代码生成方法.在所提出的算法中,首先通过拓扑排序确定模型的调度顺序,再根据不同分支的影响对组件进行分支标记;之后,根据组件的分支标记构造一个基于控制流的代码生成位置表;最后,即可根据代码生成位置表进行各种主流语言的代码生成.通过构造4个具有复杂分支的数据流模型实例进行代码生成,并在生成代码行数和运行时间等方面与Simulink和Ptolemy进行对比,进一步说明该代码生成方法在复杂分支组合情况下的通用性以及所做工作的价值和意义.
来源:2021年第6期
《软件学报》期刊编辑部