[发明专利]代码生成方法、装置、设备及存储介质在审
| 申请号: | 202010468473.X | 申请日: | 2020-05-28 |
| 公开(公告)号: | CN111625224A | 公开(公告)日: | 2020-09-04 |
| 发明(设计)人: | 焦煦然 | 申请(专利权)人: | 北京百度网讯科技有限公司 |
| 主分类号: | G06F8/20 | 分类号: | G06F8/20;G06F8/30;G06F8/41 |
| 代理公司: | 北京市铸成律师事务所 11313 | 代理人: | 邓海鸿;杨瑾瑾 |
| 地址: | 100085 北京市*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 代码 生成 方法 装置 设备 存储 介质 | ||
1.一种代码生成方法,包括:
在第一语言环境下,按照预设的声明式应用程序接口API的描述方式编写第一业务逻辑的代码,所述第一业务逻辑的代码用于描述第一业务逻辑对应的功能,编写完成后得到第一具体语法树,其中所述第一语言包括Python语言;
基于预定的语法分析算法,将所述第一具体语法树转换为第一抽象语法树;
通过解释器将所述第一抽象语法树转换为第二语言代码,所述第二语言代码用于执行所述第一业务逻辑对应的功能,其中所述第二语言包括Go语言。
2.根据权利要求1所述的方法,在所述将所述第一具体语法树转换为第一抽象语法树的过程中,所述方法还包括:
对所述第一具体语法树进行语法检查。
3.根据权利要求1所述的方法,在所述将所述第一具体语法树转换为第一抽象语法树之后,所述方法还包括:
对所述第一抽象语法树进行静态语意分析。
4.根据权利要求1所述的方法,其中,
所述声明式API的描述方式与所述第二语言的代码描述方式具有第一映射关系。
5.根据权利要求4所述的方法,其中,
所述第一映射关系为所述第二语言的代码描述方式与所述声明式API的描述方式之间的可倒推关系。
6.根据权利要求1-5中任一项所述的方法,其中,
所述声明式API包括以下至少一种函数:关键字、描述符、字面量、操作符、括号、控制流、内置数据类型、注释。
7.一种代码生成装置,包括:
代码处理模块,用于在第一语言环境下,按照预设的声明式应用程序接口API的描述方式编写第一业务逻辑的代码,所述第一业务逻辑的代码用于描述第一业务逻辑对应的功能,编写完成后得到第一具体语法树,其中所述第一语言包括Python语言;
第一转换模块,用于基于预定的语法分析算法,将所述第一具体语法树转换为第一抽象语法树;
第二转换模块,用于通过解释器将所述第一抽象语法树转换为第二语言代码,所述第二语言代码用于执行所述第一业务逻辑对应的功能,其中所述第二语言包括Go语言。
8.根据权利要求7所述的装置,还包括:
语法检查模块,用于在所述第一转换模块将所述第一具体语法树转换为第一抽象语法树的过程中,对所述第一具体语法树进行语法检查。
9.根据权利要求7所述的装置,还包括:
语意分析模块,用于在所述第一转换模块将所述第一具体语法树转换为第一抽象语法树之后,对所述第一抽象语法树进行静态语意分析。
10.根据权利要求7所述的装置,其中,所述声明式API的描述方式与所述第二语言的代码描述方式具有第一映射关系。
11.根据权利要求10所述的装置,其中,
所述第一映射关系为所述第二语言的代码描述方式与所述声明式API的描述方式之间的可倒推关系。
12.根据权利要求7-11中任一项所述的装置,其中,所述声明式API包括以下至少一种函数:关键字、描述符、字面量、操作符、括号、控制流、内置数据类型、注释。
13.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的方法。
14.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-6中任一项所述的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京百度网讯科技有限公司,未经北京百度网讯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010468473.X/1.html,转载请声明来源钻瓜专利网。





