代码生成方法、装置、设备及存储介质与流程
本发明涉及计算机,尤其涉及一种代码生成方法、装置、设备及存储介质。
背景技术:
1、目前,在开发软件工程代码时,通常采用人工手动编码的形式进行开发。具体地,开发人员根据代码工程的设计文档,手动编写代码工程的全部代码,包括代码工程的框架结构代码以及各业务功能模块的逻辑实现代码。
2、然而,不同开发人员编写代码的风格不同,导致代码工程的框架结构缺乏一致性,且框架结构代码与业务功能的逻辑实现代码在手动编写过程中边界模糊、相互耦合,后期难以可靠地分离维护。此外,人工编写全部代码的效率低下,面对复杂业务场景时出错概率高,无法在保证框架结构稳定可靠的同时灵活适应不同业务场景的逻辑实现需求。
技术实现思路
1、本发明的主要目的在于提供了一种代码生成方法、装置、设备及存储介质,旨在解决现有人工手动编码开发方案,因依赖人工编写全部代码且编码风格不统一,而导致的框架结构缺乏一致性、框架代码与业务逻辑代码边界模糊相互耦合难以分离维护,以及面对复杂业务场景时编码出错概率高、无法兼顾框架稳定性与业务灵活性的问题。
2、第一方面,本公开实施例提供了一种代码生成方法,包括:
3、基于目标代码工程的描述数据和预设代码模板,通过预设代码生成器,生成所述目标代码工程的第一代码;其中,所述描述数据用于定义所述目标代码工程的代码结构和设计资产;所述设计资产用于生成实现所述代码结构所定义的代码框架的代码;所述预设代码生成器用于基于所述预设代码模板和预设填充规则生成代码;所述预设填充规则用于将所述描述数据映射至所述预设代码模板中对应的占位符;
4、基于预设的代码编写规范和所述描述数据生成提示词,并将所述提示词输入目标模型,得到所述目标模型输出的所述目标代码工程的第二代码;所述目标模型用于基于对所述提示词的语义理解,生成实现所述描述数据所描述的业务功能的代码;
5、通过抽象语法树分别解析所述第一代码和所述第二代码,得到第一抽象语法树和第二抽象语法树,并基于所述第一抽象语法树和所述第二抽象语法树,将所述第二代码中用于实现业务逻辑的代码拼装到所述第一代码中,得到目标代码。
6、第二方面,本公开实施例提供了一种代码生成装置,所述装置包括:
7、第一生成模块,用于基于目标代码工程的描述数据和预设代码模板,通过预设代码生成器,生成所述目标代码工程的第一代码;其中,所述描述数据用于定义所述目标代码工程的代码结构和设计资产;所述设计资产用于生成实现所述代码结构所定义的代码框架的代码;所述预设代码生成器用于基于所述预设代码模板和预设填充规则生成代码;所述预设填充规则用于将所述描述数据映射至所述预设代码模板中对应的占位符;
8、第二生成模块,用于基于预设的代码编写规范和所述描述数据生成提示词,并将所述提示词输入目标模型,得到所述目标模型输出的所述目标代码工程的第二代码;所述目标模型用于基于对所述提示词的语义理解,生成实现所述描述数据所描述的业务功能的代码;
9、第三生成模块,用于通过抽象语法树分别解析所述第一代码和所述第二代码,得到第一抽象语法树和第二抽象语法树,并基于所述第一抽象语法树和所述第二抽象语法树,将所述第二代码中用于实现业务逻辑的代码拼装到所述第一代码中,得到目标代码。
10、第三方面,本公开实施例提供了一种电子设备,包括:处理器;以及,被配置为存储计算机可执行指令的存储器,所述计算机可执行指令在被执行时使所述处理器实现上述第一方面所述的方法的步骤。
11、第四方面,本公开实施例提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机可执行指令,所述计算机可执行指令在被处理器执行时实现上述第一方面所述的方法的步骤。
12、第五方面,本公开实施例提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的方法的步骤。
13、本发明实施例提供的上述至少一个技术方案可以达到如下技术效果:
14、在本发明实施例中,首先,基于目标代码工程的描述数据和预设代码模板,通过预设代码生成器生成目标代码工程的第一代码。其中,描述数据用于定义目标代码工程的代码结构和设计资产,设计资产用于生成实现代码结构所定义的代码框架的代码,预设代码生成器用于基于预设代码模板和预设填充规则生成代码,预设填充规则用于将描述数据映射至预设代码模板中对应的占位符。基于预设的代码编写规范和描述数据生成提示词,并将提示词输入目标模型,得到目标模型输出的目标代码工程的第二代码。目标模型用于基于对提示词的语义理解,生成实现描述数据所描述的业务功能的代码。在生成第一代码和第二代码后,通过抽象语法树分别解析第一代码和第二代码,得到第一抽象语法树和第二抽象语法树,并基于第一抽象语法树和第二抽象语法树,将第二代码中用于实现业务逻辑的代码拼装到第一代码中,得到目标代码。
15、本发明实施例通过预设代码生成器基于预设填充规则统一生成框架结构代码,从生成机制层面保证了框架结构的一致性,使框架结构代码与业务逻辑代码在生成阶段即被明确分离,有效克服了现有方案因人工编写导致的框架结构不一致、两类代码边界模糊且相互耦合、后期难以可靠分离维护的技术问题。而通过目标模型基于语义理解生成业务逻辑代码,在框架结构保持稳定可靠的前提下,灵活适应不同业务场景的逻辑实现需求,有效解决了人工编写全部代码效率低下、面对复杂业务场景时编码出错概率高的技术问题。此外,通过抽象语法树对第一代码和第二代码进行解析并将业务逻辑代码拼装至框架结构代码中,使得分别生成的框架结构代码与业务逻辑代码能够自动化且准确可靠地完成整合,从而生成可运行的完整代码。
1.一种代码生成方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述基于所述第一抽象语法树和所述第二抽象语法树,将所述第二代码中用于实现业务逻辑的代码拼装到所述第一代码中,包括:
3.根据权利要求1所述的方法,其特征在于,在所述基于所述第一抽象语法树和所述第二抽象语法树,将所述第二代码中用于实现业务逻辑的代码拼装到所述第一代码中,得到目标代码之前,所述方法还包括:
4.根据权利要求2所述的方法,其特征在于,所述基于所述第二抽象语法树,识别所述第二代码中方法体内包含业务逻辑实现语句的第二方法节点,包括:
5.根据权利要求2所述的方法,其特征在于,在所述基于所述拼装后的抽象语法树,生成所述目标代码之前,所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,所述基于预设的代码编写规范和所述描述数据生成提示词,包括:
7.一种代码生成装置,其特征在于,所述装置包括:
8.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机可执行指令,所述计算机可执行指令在被处理器执行时实现上述权利要求1至6任一项所述的方法的步骤。
10.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述权利要求1至6任一项所述的方法的步骤。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com