一种MATLAB程序算法解析形式化建模方法及平台技术

技术编号:38220480 阅读:9 留言:0更新日期:2023-07-25 17:52
本发明专利技术公开了一种MATLAB程序算法解析形式化建模方法及平台,所述方法包括以下步骤:检测改造模块通过对输入的数字样机代码进行扫描识别,对其中的变量声明方式及数据类型种类进行识别,基于变量类型及对应的标准映射规范对识别到的相应位置进行更换,生成MATLAB标准样机;解析器模块对MATLAB标准样机进行多种类型识别,提取其中的元素名称生成对应的程序元素对象池输入到构造器模块;构造器模块根据输入的程序元素对象池,依照指令和控制结构逻辑通过AST基础构建模块生成相应AST语法树,将AST语法树根据形式化规范形成XML文件输出。本发明专利技术可以提高嵌入式系统样机到工程代码的转换周期,加快研发效率。加快研发效率。加快研发效率。

【技术实现步骤摘要】
一种MATLAB程序算法解析形式化建模方法及平台


[0001]本专利技术涉及嵌入式系统领域,具体涉及一种MATLAB程序算法解析形式化建模方法及平台。

技术介绍

[0002]随着嵌入式系统信息化、软件化程度的不断提高,以及应用领域和作用对象的多样化、复杂化的影响,嵌入式系统逐渐具有运行场景复杂、状态模式多、管理节点庞大、接口与数据量大等特点。使用基于MATLAB的数字样机支持嵌入式系统总体设计、软件设计等设计工作成为当前发展主流。但到工程实现阶段,MATLAB带来的巨大语法差异使得软件实现受到了阻碍。

技术实现思路

[0003]为了解决上述问题,本专利技术提出了一种MATLAB程序算法解析形式化建模方法,包括以下步骤:
[0004]检测改造模块通过对输入的数字样机代码进行扫描识别,对其中的变量声明方式及数据类型种类进行识别,基于变量类型及对应的标准映射规范对识别到的相应位置进行更换,生成MATLAB标准样机;
[0005]解析器模块对MATLAB标准样机进行多种类型识别,提取其中的元素名称生成对应的程序元素对象池输入到构造器模块;
[0006]构造器模块根据输入的程序元素对象池,依照指令和控制结构逻辑通过AST基础构建模块生成相应AST语法树,将AST语法树根据形式化规范形成XML文件输出。
[0007]进一步地,对变量声明方式及数据类型种类的识别基于语法分析工具遍历代码解析进行。
[0008]进一步地,所述多种类型识别具体包括词法分析及语法分析识别,词法分析及语法分析识别包括数据类型识别、指令和控制结构识别以及任务结构识别。
[0009]进一步地,识别的数据类型包括基本数据类型、派生数据类型以及应用数据类型;指令和控制结构包括简单指令、算子指令、for循环结构以及if条件结构;任务结构包括性能检测任务及应用任务。
[0010]进一步地,所述多种类型识别基于前缀描述信息识别和后缀标记信息进行。
[0011]进一步地,所述标准映射规范包括样机参数类型,所述样机参数类型包括float和unsigned int;如果样机参数类型为float,其标记前缀为f_;如果样机参数类型为unsigned int,其前缀标记为ui_。
[0012]本专利技术还提出了一种MATLAB程序算法解析形式化建模平台,所述MATLAB程序算法解析形式化建模包括检测改造模块、解析器模块及构造器模块;检测改造模块通过对输入的数字样机代码进行扫描识别,对其中的变量声明方式及数据类型种类进行识别,基于变量类型及对应的标准映射规范对识别到的相应位置进行更换,生成MATLAB标准样机;解析
器模块对MATLAB标准样机进行多种类型识别,提取其中的元素名称生成对应的程序元素对象池输入到构造器模块;构造器模块根据输入的程序元素对象池,依照指令和控制结构逻辑通过AST基础构建模块生成相应AST语法树,将AST语法树根据形式化规范形成XML文件输出;所述MATLAB程序算法解析形式化建模平台根据上述任一方法进行MATLAB程序算法解析的形式化建模。
[0013]与现有技术相比,本专利技术具有以下有益效果:
[0014]1、提升软件研发效率:由MATLAB程序算法转换到形式化模型,作为输入可基于多种开发工具软件根据粒度大小形成框架代码至详细实现代码,减轻开发工作量,提升研发效率。
[0015]2、良好的扩展性:使用XML文件作为形式化描述模型,基于XML自身数据存储交换、易于展现树结构、标签自定义等特性,具备更好的自主性、灵活性和扩展性。
[0016]3、良好的可读性:依托于AST带来的算子与变量关系的树形结构,程序逻辑清晰可见,方便修改调整。
附图说明
[0017]图1为本专利技术实施例的MATLAB程序算法解析形式化建模方法的流程图。
具体实施方式
[0018]本专利技术的目的在于设计一种MATLAB程序算法解析形式化建模方法,具备对MATLAB样机算法数据类型、指令控制结构、任务结构等分类识别,抽象语法树AST生成,以及XML描述语言形式化模型生成,可以提高嵌入式系统样机到工程代码的转换周期,加快研发效率。
[0019]以下结合附图对本专利技术的一种MATLAB程序算法解析形式化建模方法及平台的具体实施方式做详细说明。
[0020]本实施例提供了一种MATLAB程序算法解析形式化建模方法,如图1所示,主要包括下述步骤:
[0021]检测改造模块通过对输入的数字样机代码进行扫描识别,详细对其中的变量声明方式及数据类型种类进行基于语法分析工具遍历代码解析识别,基于变量类型及对应设计的标准映射规范对识别到的相应位置进行更换,生成符合标准要求,完善后的MATLAB标准样机。所述标准映射规范包括样机参数类型,如果样机参数类型为float,其标记前缀应为f_,如果样机参数类型为unsigned int,其前缀标记应为ui_。
[0022]解析器模块可以实现对MATLAB程序的多种类型识别,通过词法分析及语法分析识别包括数据类型识别、指令和控制结构识别以及任务结构识别在内的多种程序元素。其中数据类型包括基本数据类型、派生数据类型以及应用数据类型;指令和控制结构包括简单指令、算子指令、for循环结构以及if条件结构;任务结构包括性能检测任务及应用任务。所述识别基于前缀描述信息识别和后缀标记信息(如_v后缀代表实数向量等)进行;该模块据此提取元素名称生成对应的程序元素对象池输入到构造器模块。
[0023]构造器模块根据输入的程序元素对象池,依照指令和控制结构逻辑通过AST基础构建模块生成相应AST语法树,再将AST语法树根据用户定义的形式化规范,形成可供使用的XML文件输出。
[0024]本实施例提供了一种MATLAB程序算法解析形式化建模平台,包括检测改造模块、解析器模块及构造器模块。通过对MATLAB程序检测改造、解析识别,完成用户需要的算法流程元件采集及AST树、XML描述模型生成,实现MATLAB程序基于形式化模型的快速工程化实现。
[0025]本实施例中,首先完成了检测改造模块、解析器模块及构造器模块功能实现。将MATLAB程序输入至检测改造模块,借助机器自动识别与模板改动等手段完成对程序的标准化和规范化,再次输入解析器模块,通过词法、语法分析识别包括数据类型识别(整型、浮点型、结构体等)、指令和控制结构识别(多种逻辑语句)以及任务结构识别(性能要素)在内的多种程序元素,并据此生成对应的程序元素对象池形成输出至构造器模块,构造器模块根据解析后的程序逻辑流程生成对应的AST语法解析树,再根据用户定义的XML形式化模型完成最终XML文件输出。
[0026](1)检测改造模块对用户输入的MATLAB程序进行分析识别,对变量声明方式及数据类型种类进行标准化、规范化改造。
[0027](2)解析器模块将标准MATLAB程序进行词法、语法分析,提取程序中类型、指令结构及任务结构等对象信息,填充到对象池。
...

【技术保护点】

【技术特征摘要】
1.一种MATLAB程序算法解析形式化建模方法,其特征在于,包括以下步骤:检测改造模块通过对输入的数字样机代码进行扫描识别,对其中的变量声明方式及数据类型种类进行识别,基于变量类型及对应的标准映射规范对识别到的相应位置进行更换,生成MATLAB标准样机;解析器模块对MATLAB标准样机进行多种类型识别,提取其中的元素名称生成对应的程序元素对象池输入到构造器模块;构造器模块根据输入的程序元素对象池,依照指令和控制结构逻辑通过AST基础构建模块生成相应AST语法树,将AST语法树根据形式化规范形成XML文件输出。2.根据权利要求1所述的MATLAB程序算法解析形式化建模方法,其特征在于,对变量声明方式及数据类型种类的识别基于语法分析工具遍历代码解析进行。3.根据权利要求1所述的MATLAB程序算法解析形式化建模方法,其特征在于,所述多种类型识别具体包括词法分析及语法分析识别,词法分析及语法分析识别包括数据类型识别、指令和控制结构识别以及任务结构识别。4.根据权利要求3所述的MATLAB程序算法解析形式化建模方法,其特征在于,识别的数据类型包括基本数据类型、派生数据类型以及应用数据类型;指令和控制结构包括简单指令、算子指令、for循环结构以及if条件结构;任务结构包括性能检测任务及应用任务。5.根据权利要求4所述的M...

【专利技术属性】
技术研发人员:马飞扬唐强王嘎石宏伟李路野丁琳琳
申请(专利权)人:中国电子科技集团公司第十四研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1