基于分支标记的数据流模型的代码生成方法

作者:苏卓; 王东艳; 杨镒箫; 张明睿; 姜宇*; 孙家广
来源:软件学报, 2021, 32(06): 1647-1662.
DOI:10.13328/j.cnki.jos.006242

摘要

模型驱动开发以其低错误率、易仿真、易验证的特点,在嵌入式软件开发中被广泛应用.近年来,基于模型的嵌入式软件开发方法及相应工具也在逐渐发展和完善.数据流模型是各种建模工具中使用最为频繁的语义模型,然而,各种工具对于数据流模型的代码生成能力却参差不齐,特别是对于数据分支组件的支持,当前主流的建模工具都采用各种方式来回避复杂的分支建模及对应的代码生成.但是,分支建模是非常重要的,使用分支组件可以更清晰地表现出数据流的数据传递逻辑.为了解决复杂分支建模带来的代码生成难题,针对具有复杂分支组合的数据流模型.提出了一种基于分支调度标记的代码生成方法.在所提出的算法中,首先通过拓扑排序确定模型的调度顺序,再根据不同分支的影响对组件进行分支标记;之后,根据组件的分支标记构造一个基于控制流的代码生成位置表;最后,即可根据代码生成位置表进行各种主流语言的代码生成.通过构造4个具有复杂分支的数据流模型实例进行代码生成,并在生成代码行数和运行时间等方面与Simulink和Ptolemy进行对比,进一步说明该代码生成方法在复杂分支组合情况下的通用性以及所做工作的价值和意义.

全文