本申请公开了一种程序代码注释的生成方法,所述生成方法包括提取目标代码的代码特征信息;其中,所述代码特征信息包括代码关键词、代码方法、代码动作和动作参数;根据所述代码特征信息生成所述目标代码对应的自然语言信息;生成所述自然语言信息对应的注释文本,并输出包括所述注释文本的目标代码。本申请能够自动生成程序代码的注释,提高代码注释效率。本申请还公开了一种程序代码注释的生成系统、一种电子设备及一种存储介质,具有以上有益效果。
Generation method, system, electronic equipment and storage medium of program code annotation
【技术实现步骤摘要】
程序代码注释的生成方法、系统、电子设备及存储介质
本申请涉及计算机
,特别涉及一种程序代码注释的生成方法、系统、一种电子设备及一种存储介质。
技术介绍
随着IT行业的快速发展,开发者在开发程序的过程中的代码量也在逐步上升,很多程序员在开发的时候不愿意去添加注释,导致后来的开发或者维护人员在理解代码上耗费很大的精力。目前尚不存在具体的技术方案来完成实现程序代码注释的生成,相关技术中通过methodrefactoring(方法重构)来快速理解代码,这种方法是通过方法的调用来换一种方式表达,但是该方法也无法生成整个代码的注释。因此,如何自动生成程序代码的注释,提高代码注释效率是本领域技术人员目前需要解决的技术问题。
技术实现思路
本申请的目的是提供一种程序代码注释的生成方法、系统、一种电子设备及一种存储介质,能够自动生成程序代码的注释,提高代码注释效率。为解决上述技术问题,本申请提供一种程序代码注释的生成方法,该程序代码注释的生成方法包括:提取目标代码的代码特征信息;其中,所述代码特征信息包括代码关键词、代码方法、代码动作和动作参数;根据所述代码特征信息生成所述目标代码对应的自然语言信息;生成所述自然语言信息对应的注释文本,并输出包括所述注释文本的目标代码。可选的,在生成所述自然语言信息对应的注释文本之后,还包括:记录所述注释文本中每一子文本与所述目标代码行数的对应关系;相应的,输出包括所述注释文本的目标代码;根据所述对应关系确定每一所述子文本对应的行数,根据所述子文本对应的行数输出包括所述注释文本的目标代码。可选的,所述提取目标代码的代码特征信息包括:通过对所述目标代码递归遍历提取所述目标代码的代码特征信息。可选的,在根据所述代码特征信息生成所述目标代码对应的自然语言信息的过程中,还包括:当检测到无法生成自然语言信息的异常代码特征信息时,利用代码解析池中的备选代码方法执行方法重构操作以便生成所述自然语言信息。可选的,所述利用代码解析池中的备选代码方法执行方法重构操作以便生成所述自然语言信息,包括:确定所述异常代码特征信息中的方法的程序代码目的,将代码解析池中与所述程序代码目的对应的备选代码方法设置为目标备选代码方法;将所述异常代码特征信息中的方法替换为所述目标备选代码方法得到备选代码特征信息;利用所述备选代码特征信息执行解析操作,以便生成所述自然语言信息。可选的,还包括:当利用所述备选代码特征信息执行解析操作时,若检测到解析失败信息,则将所述异常代码特征信息中的方法替换为新的目标备选代码方法以便执行解析操作;记录方法替换次数;当所述方法替换次数大于预设值时,输出注释失败的提示信息。可选的,在输出包括所述注释文本的目标代码之后,还包括:对通过方法替换得到的注释文本进行标记。本申请还提供了一种程序代码注释的生成系统,该程序代码注释的生成系统包括:特征提取模块,用于提取目标代码的代码特征信息;其中,所述代码特征信息包括代码关键词、代码方法、代码动作和动作参数;自然语言生成模块,用于根据所述代码特征信息生成所述目标代码对应的自然语言信息;注释模块,用于生成所述自然语言信息对应的注释文本,并输出包括所述注释文本的目标代码。本申请还提供了一种存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述程序代码注释的生成方法执行的步骤。本申请还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述程序代码注释的生成方法执行的步骤。本申请提供了一种程序代码注释的生成方法,包括提取目标代码的代码特征信息;其中,所述代码特征信息包括代码关键词、代码方法、代码动作和动作参数;根据所述代码特征信息生成所述目标代码对应的自然语言信息;生成所述自然语言信息对应的注释文本,并输出包括所述注释文本的目标代码。本申请向提取目标代码的代码关键词、代码方法、代码动作和动作参数等代码特征信息,由于代码特征信息描述了目标代码运行过程中的操作流程因此根据代码特征新生成对应的自然语言信息。本申请进一步生成资源语言信息对应的注释文本,进而得到了包括注释文本的目标代码。本申请能够自动生成程序代码的注释,提高代码注释效率。本申请同时还提供了一种程序代码注释的生成系统、一种电子设备和一种存储介质,具有上述有益效果,在此不再赘述。附图说明为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例所提供的一种程序代码注释的生成方法的流程图;图2为本申请实施例所提供的另一种程序代码注释的生成方法的流程图;图3为本申请实施例所提供的一种代码解析器的解析代码原理示意图;图4为本申请实施例所提供的一种程序代码注释的生成系统的结构示意图。具体实施方式为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。下面请参见图1,图1为本申请实施例所提供的一种程序代码注释的生成方法的流程图。具体步骤可以包括:S101:提取目标代码的代码特征信息;其中,本实施例中所提到的目标代码可以为某个程序或多个程序的程序代码,该目标代码可以为Java语言编写的代码、可以为C语言编写的代码,本实施例不对目标代码对应的编程语言进行限定。在本步骤之前可以存在获取目标代码的操作,在得到目标代码后可以对目标代码执行代码特征提取操作得到代码特征信息。本实施例所提取的代码特征信息可以包括代码关键词、代码方法、代码动作和动作参数。代码关键词为编译器有特殊含义的字符串,是编译器和程序员的一个约定,可以利用代码关键词来告诉编译器其声明的变量类型、类、方法特性等信息。本实施例可以预先设置每一种编程语言对应的代码关键词表,在提取目标代码之前先确定目标代码的编程语言,进而在提取目标代码的代码关键词时可以将目标代码与代码关键词表执行匹配操作确定目标代码中的代码关键词。代码方法指程序代码中的函数,本实施例也可以预先设置函数表进而识别目标代码中的代码方法。代码动作指程序代码中的动作,如打印动作、输出动作等,动作参数为代码动作对应的参数如打印的地址、输出的端口等。作为一种可行的实施方式,本实施例可以通过对所述目标代码递归遍历提取所述目标代码的代码特征信息。S102:根据所述代码特征信息生成所本文档来自技高网...
【技术保护点】
1.一种程序代码注释的生成方法,其特征在于,包括:/n提取目标代码的代码特征信息;其中,所述代码特征信息包括代码关键词、代码方法、代码动作和动作参数;/n根据所述代码特征信息生成所述目标代码对应的自然语言信息;/n生成所述自然语言信息对应的注释文本,并输出包括所述注释文本的目标代码。/n
【技术特征摘要】
1.一种程序代码注释的生成方法,其特征在于,包括:
提取目标代码的代码特征信息;其中,所述代码特征信息包括代码关键词、代码方法、代码动作和动作参数;
根据所述代码特征信息生成所述目标代码对应的自然语言信息;
生成所述自然语言信息对应的注释文本,并输出包括所述注释文本的目标代码。
2.根据权利要求1所述生成方法,其特征在于,在生成所述自然语言信息对应的注释文本之后,还包括:
记录所述注释文本中每一子文本与所述目标代码行数的对应关系;
相应的,输出包括所述注释文本的目标代码;
根据所述对应关系确定每一所述子文本对应的行数,根据所述子文本对应的行数输出包括所述注释文本的目标代码。
3.根据权利要求1所述生成方法,其特征在于,所述提取目标代码的代码特征信息包括:
通过对所述目标代码递归遍历提取所述目标代码的代码特征信息。
4.根据权利要求1所述生成方法,其特征在于,在根据所述代码特征信息生成所述目标代码对应的自然语言信息的过程中,还包括:
当检测到无法生成自然语言信息的异常代码特征信息时,利用代码解析池中的备选代码方法执行方法重构操作以便生成所述自然语言信息。
5.根据权利要求4所述生成方法,其特征在于,所述利用代码解析池中的备选代码方法执行方法重构操作以便生成所述自然语言信息,包括:
确定所述异常代码特征信息中的方法的程序代码目的,将代码解析池中与所述程序代码目的对应的备选代码方法设置为目标备选代码方法;
将所述异常代码特征信...
【专利技术属性】
技术研发人员:边智慧,
申请(专利权)人:苏州浪潮智能科技有限公司,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。