[发明专利]一种代码处理方法、装置、设备及存储介质在审
申请号: | 202211345783.8 | 申请日: | 2022-10-31 |
公开(公告)号: | CN115617347A | 公开(公告)日: | 2023-01-17 |
发明(设计)人: | 裴俊宇 | 申请(专利权)人: | 北京火山引擎科技有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 北京中知法苑知识产权代理有限公司 11226 | 代理人: | 赵吉阳 |
地址: | 100190 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 处理 方法 装置 设备 存储 介质 | ||
本公开提供了一种代码处理方法、装置、设备及存储介质,可以获取待度量的第一源代码,对其进行语法分析生成第一抽象语法树,进而针对第一抽象语法树进行语义分析和编译生成第一中间代码,统计第一中间代码中所有函数的第一代码行数总量作为第一源代码的代码当量。本公开实施例能够针对待度量的源代码,生成其对应的中间代码,通过中间代码中所有函数的代码行数总量来得到代码当量,与抽象语法树相比,中间代码更加靠近编译最终得到的执行代码,从而本公开实施例可以减少语法语义方面的干扰,提高确定出的代码当量的准确度,提升确定出的代码当量与代码本身实现内容的相关度,同时可以兼顾代码度量的需要和中间代码的有效利用。
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种代码处理方法、装置、设备及存储介质。
背景技术
随着科技的进步和发展,对软件研发的要求也随之提高。在项目开发过程中,大多是多人协力,每个人各自负责一部分的编码任务,然后将每个人编写的内容汇总到一起。为了准确获知项目每个阶段的迭代情况,需要经常统计项目的开发进度,从而可以确定当前项目进程是否符合预期。
在项目开发过程中,为了评估项目的开发进度,需要对当前项目工程总量以及每次修改的代码量进行度量,由于不同人在不同阶段编写的代码不同,在衡量代码当量时的准确率低,速度慢,缺乏统一的转换衡量标准,影响对项目进程判断的准确度。
发明内容
本公开实施例至少提供一种代码处理方法、装置、设备及存储介质。
本公开实施例提供了一种代码处理方法,所述方法包括:
获取待度量的第一源代码;
对所述第一源代码进行语法分析生成第一抽象语法树,并针对所述第一抽象语法树进行语义分析和编译生成第一中间代码;
统计所述第一中间代码中所有函数的第一代码行数总量,将所述第一代码行数总量作为所述第一源代码的代码当量。
一种可选的实施方式中,所述统计所述第一中间代码中所有函数的第一代码行数总量,将所述第一代码行数总量作为所述第一源代码的代码当量,包括:
按照所述第一中间代码的执行逻辑,识别得到所述第一中间代码包括的多段第一函数代码;
确定每段第一函数代码的代码行数;
基于每段第一函数代码的代码行数,确定所述第一源代码的代码当量。
一种可选的实施方式中,所述方法还包括:
针对预设的多个第一代码关键词,确定每段所述第一函数代码对应的第一权重值,所述第一权重值表征所述第一函数代码中所述第一代码关键词对应的代码语法出现的频次;
确定每段第一函数代码能够被调用的第一次数;
所述基于每段第一函数代码的代码行数,确定所述第一源代码的代码当量,包括:
针对每段第一函数代码,计算所述第一函数代码的代码行数、对应的第一权重值、以及所述第一次数的乘积,得到所述第一函数代码的第一代码当量;
将多段所述第一函数代码中每段所述第一函数代码的第一代码当量之和,确定为所述第一源代码的代码当量。
一种可选的实施方式中,所述方法还包括:
在所述第一源代码被调整的情况下,获取调整后得到的第二源代码;
对所述第二源代码进行语法分析生成第二抽象语法树,并针对所述第二抽象语法树进行语义分析和编译生成第二中间代码;
获取所述第一源代码对应的所述第一中间代码;
基于所述第一中间代码和所述第二中间代码,确定此次代码调整的增量代码当量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京火山引擎科技有限公司,未经北京火山引擎科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211345783.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种石油化工管道带压堵漏方法
- 下一篇:一种应用于肿瘤治疗的交变电场发生装置