Page 73 - 《软件学报》2021年第6期
P. 73
软件学报 ISSN 1000-9825, CODEN RUXUEW E-mail: jos@iscas.ac.cn
Journal of Software,2021,32(6):1647−1662 [doi: 10.13328/j.cnki.jos.006242] http://www.jos.org.cn
©中国科学院软件研究所版权所有. Tel: +86-10-62562563
∗
基于分支标记的数据流模型的代码生成方法
1,2
3
1,2
1,2
1,2
苏 卓 , 王东艳 , 杨镒箫 , 张明睿 , 姜 宇 , 孙家广 1,2
1
(清华大学 软件学院,北京 100084)
2 (信息系统安全教育部重点实验室(清华大学),北京 100084)
3 (北京大学 信息科学技术学院,北京 100871)
通讯作者: 姜宇, E-mail: jiangyu198964@126.com
摘 要: 模型驱动开发以其低错误率、易仿真、易验证的特点,在嵌入式软件开发中被广泛应用.近年来,基于模型
的嵌入式软件开发方法及相应工具也在逐渐发展和完善.数据流模型是各种建模工具中使用最为频繁的语义模型,
然而,各种工具对于数据流模型的代码生成能力却参差不齐,特别是对于数据分支组件的支持,当前主流的建模工具
都采用各种方式来回避复杂的分支建模及对应的代码生成.但是,分支建模是非常重要的,使用分支组件可以更清晰
地表现出数据流的数据传递逻辑.为了解决复杂分支建模带来的代码生成难题,针对具有复杂分支组合的数据流模
型.提出了一种基于分支调度标记的代码生成方法.在所提出的算法中,首先通过拓扑排序确定模型的调度顺序,再
根据不同分支的影响对组件进行分支标记;之后,根据组件的分支标记构造一个基于控制流的代码生成位置表;最
后,即可根据代码生成位置表进行各种主流语言的代码生成.通过构造 4 个具有复杂分支的数据流模型实例进行代
码生成,并在生成代码行数和运行时间等方面与 Simulink 和 Ptolemy 进行对比,进一步说明该代码生成方法在复杂
分支组合情况下的通用性以及所做工作的价值和意义.
关键词: 模型驱动开发;数据流;代码生成;分支;嵌入式系统
中图法分类号: TP311
中文引用格式: 苏卓,王东艳,杨镒箫,张明睿,姜宇,孙家广.基于分支标记的数据流模型的代码生成方法.软件学报,2021,32(6):
1647−1662. http://www.jos.org.cn/1000-9825/6242.htm
英文引用格式: Su Z, Wang DY, Yang YX, Zhang MR, Jiang Y, Sun JG. Code generation method of data flow model based on
branch marking. Ruan Jian Xue Bao/Journal of Software, 2021,32(6):1647−1662 (in Chinese). http://www.jos.org.cn/1000-9825/
6242.htm
Code Generation Method of Data Flow Model Based on Branch Marking
1,2
1,2
3
1,2
1,2
SU Zhuo , WANG Dong-Yan , YANG Yi-Xiao , ZHANG Ming-Rui , JIANG Yu , SUN Jia-Guang 1,2
1 (School of Software, Tsinghua University, Beijing 100084, China)
2 (Key Laboratory for Information System Security, Ministry of Education (Tsinghua University), Beijing 100084, China)
3 (School of Electronics Engineering and Computer Science, Peking University, Beijing 100871, China)
Abstract: Model-driven development is widely used in embedded software development because it has a low error rate while it is easy
to simulate and verify. In recent years, model-based embedded software development methods and their corresponding tools are also
gradually developing and improving. Data flow model is the most frequently used semantic model among all kinds of modeling tools.
∗ 基金项目: 国家自然科学基金(62022046, U1911401, 61802223); 科技部重点研发计划(2019YFB1706200); 华为清华可信研究
项目(20192000794)
Foundation item: National Natural Science Foundation of China (62022046, U1911401, 61802223); National Key Research and
Development Project (2019YFB1706200); Huawei-Tsinghua Trustworthy Research Project (20192000794)
本文由“形式化方法与应用”专题特约编辑田聪教授推荐.
收稿时间: 2020-08-26; 修改时间: 2020-10-26, 2020-12-19; 采用时间: 2021-01-18; jos 在线出版时间: 2021-02-07