[发明专利]一种MATLAB语言代码质量检测系统及其检测方法在审
申请号: | 202210566682.7 | 申请日: | 2022-05-23 |
公开(公告)号: | CN115203016A | 公开(公告)日: | 2022-10-18 |
发明(设计)人: | 钱振宇 | 申请(专利权)人: | 钱振宇 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 安徽思沃达知识产权代理有限公司 34220 | 代理人: | 张旭华 |
地址: | 100089 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 matlab 语言 代码 质量 检测 系统 及其 方法 | ||
1.一种MATLAB语言代码质量检测系统,包括前端系统、后端系统,其特征在于,所述前端系统包括首页、登录/注册界面、查看项目界面、分析结果展示,所述后端系统包括多文件处理模块、代码静态分析处理模块、语法树监听器模块、符号表与作用域模块、工具类模块、结果展示模块与CRUD模块。
2.根据权利要求1所述的一种MATLAB语言代码质量检测系统,其特征在于,所述分析结果展示模块还包括详细代码与函数调用图页面、分析信息查询页面与分析数据展示界面。
3.根据权利要求1所述的一种MATLAB语言代码质量检测系统,其特征在于,所述首页、登录/注册界面、查看项目界面、分析结果展示用于用户在前端系统登录账户并上传文件。
4.根据权利要求1所述的一种MATLAB语言代码质量检测系统,其特征在于,所述多文件处理模块用于接收文件以及转储,所述代码静态分析处理模块用于对词法、语法进行分析并生成抽象语法树,以及还用于遍历语法分析树,检测词法与语法错误,记录函数及函数参数,代码静态分析。
5.根据权利要求1所述的一种MATLAB语言代码质量检测系统,其特征在于,所述语法树监听器模块用于在语法树遍历过程中监听,处理静态分析内容,所述符号表与作用域模块用于描述。记录MATLAB的符号表和作用域。
6.根据权利要求1所述的一种MATLAB语言代码质量检测系统,其特征在于,所述工具类模块用于生成DOT代码、绘制调用关系图,所述结果展示模块用于传送分析结果与图片,所述CRUD模块用于与数据库交互、听随前端系统命令进行增删改查。
7.一种MATLAB语言代码质量检测方法,其特征在于,包括以下步骤:
S1:在前端系统登录后上传文件,并通过分析结果展示模块的详细代码与函数调用图页面、分析信息查询页面与分析数据展示界面对相关信息进行展示。
S2:通过后端系统的多文件处理模块对上传的文件进行接收、转储,同时通过代码静态分析处理模块对将文件信息调用并分别通过语法树监听模块、符号表与作用域模块与工具类模块对文件信息在语法树遍历过程中监听,处理静态分析内筒,描述、记录MATLAB的符号表和作用域,生成DOT代码,绘制调用关系图;
S3:通过结果展示模块对进行各种分析数据进行传送分析结果、图片,以及展示、表格式查询;
S4:用户、项目CRUD模块分别与数据库以及前端系统连接,以方便对用户登录、项目展示、项目新建进行的操作。
8.根据权利要求7所述的一种MATLAB语言代码质量检测方法,其特征在于,所述S2中生成抽象语法树,首先要对代码进行词法分析和语法分析,并使用ANTLR4引擎来实现这一过程。
9.根据权利要求8所述的一种MATLAB语言代码质量检测方法,其特征在于,所述ANTLR4引擎来首先使用正则表达式对MATLAB词法和语法规则进行描述,编写为.g4文件,然后使用ANTLR引擎,生成词法分析器Lexer、语法分析器Parser,以及用于遍历抽象语法树的Listener和Visitor。
10.根据权利要求9所述的一种MATLAB语言代码质量检测方法,其特征在于,所述Listener监听器在遍历抽象语法树(深度优先遍历)的过程中,每当进入和退出一个语法结点时,ANTLR都会捕获到这一行为,然后执行相应Listener中的代码,进而在相应的语法节点处获取我们需要的代码信息,从而进行代码静态分析,且整个遍历过程分为三轮。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于钱振宇,未经钱振宇许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210566682.7/1.html,转载请声明来源钻瓜专利网。