[发明专利]代码生成方法、装置、设备及存储介质在审
| 申请号: | 202010468473.X | 申请日: | 2020-05-28 |
| 公开(公告)号: | CN111625224A | 公开(公告)日: | 2020-09-04 |
| 发明(设计)人: | 焦煦然 | 申请(专利权)人: | 北京百度网讯科技有限公司 |
| 主分类号: | G06F8/20 | 分类号: | G06F8/20;G06F8/30;G06F8/41 |
| 代理公司: | 北京市铸成律师事务所 11313 | 代理人: | 邓海鸿;杨瑾瑾 |
| 地址: | 100085 北京市*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 代码 生成 方法 装置 设备 存储 介质 | ||
本申请公开了一种代码生成方法、装置、设备及存储介质,涉及云计算技术领域,具体涉及软件技术领域。具体实现方案为,代码生成方法包括:在第一语言环境下编写第一业务逻辑的代码,所述第一业务逻辑的代码用于描述第一业务逻辑对应的功能,其中,所述第一业务逻辑的代码是按照预设的声明式应用程序接口API的描述方式进行编写的,编写完成后得到第一具体语法树;基于预定的语法分析算法,将所述第一具体语法树转换为第一抽象语法树;通过解释器将所述第一抽象语法树转换为第二语言代码,所述第二语言代码用于执行所述第一业务逻辑对应的功能。利用本申请的实施例能够实现对目标代码的动态描述。
技术领域
本申请涉及云计算技术领域,具体涉及软件技术领域,更具体地,涉及一种代码生成方法、装置、设备以及存储介质。本申请可应用于计算机领域。
背景技术
在各种计算机编程语言中,Go语言具有语法简洁、运行高速、可并行处理封装以及开源等优点,可作为搭载WEB服务器或存储集群等巨型中央服务器的系统编程语言。对于高性能分布式系统而言,Go语言比大多数其它语言具有更高的开发效率,可它提供海量并行的支持,在服务端的开发优势较大。目前,常用的Go语言代码生成方案大多是基于静态文件生成的,使用和维护过程繁琐,对业务功能的实现带来负面影响,有待优化和改善。
发明内容
本申请提供了一种代码生成方法、装置、设备以及存储介质。
根据本申请的第一方面,提供了一种代码生成方法,包括:
在第一语言环境下,按照预设的声明式应用程序接口API的描述方式编写第一业务逻辑的代码,所述第一业务逻辑的代码用于描述第一业务逻辑对应的功能,编写完成后得到第一具体语法树,其中所述第一语言包括Python语言;
基于预定的语法分析算法,将所述第一具体语法树转换为第一抽象语法树;
通过解释器将所述第一抽象语法树转换为第二语言代码,所述第二语言代码用于执行所述第一业务逻辑对应的功能,其中所述第二语言包括Go语言。
根据本申请的第二方面,提供了一种代码生成装置,包括:
代码处理模块,用于在第一语言环境下,按照预设的声明式应用程序接口API的描述方式编写第一业务逻辑的代码,所述第一业务逻辑的代码用于描述第一业务逻辑对应的功能,编写完成后得到第一具体语法树,其中所述第一语言包括Python语言;
第一转换模块,用于基于预定的语法分析算法,将所述第一具体语法树转换为第一抽象语法树;
第二转换模块,用于通过解释器将所述第一抽象语法树转换为第二语言代码,所述第二语言代码用于执行所述第一业务逻辑对应的功能,其中所述第二语言包括Go语言。
根据本申请的第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与至少一个处理器通信连接的存储器;其中,
存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如上的代码生成方法。
根据本申请的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行如上的代码生成方法。
根据本申请实施例可通过声明式应用程序接口API,基于第一编程语言例如Python语言代码生成第二编程语言例如Go语言代码,从而能够通过第一语言动态地控制第二语言,实现对第二语言代码逻辑的动态描述。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京百度网讯科技有限公司,未经北京百度网讯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010468473.X/2.html,转载请声明来源钻瓜专利网。





