[发明专利]一种代码生成方法、装置、电子设备及存储介质有效
申请号: | 202110973058.4 | 申请日: | 2021-08-24 |
公开(公告)号: | CN113656042B | 公开(公告)日: | 2023-07-21 |
发明(设计)人: | 刘姗 | 申请(专利权)人: | 北京奇艺世纪科技有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/30 |
代理公司: | 北京柏杉松知识产权代理事务所(普通合伙) 11413 | 代理人: | 马敬;项京 |
地址: | 100080 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 生成 方法 装置 电子设备 存储 介质 | ||
1.一种代码生成方法,其特征在于,所述方法应用于编译器,所述方法包括:
获取应用程序的原始应用代码,以及获取用于对所述原始应用代码进行校验的原始校验代码;
对所述原始应用代码进行预编译,得到第一原始代码,并对所述第一原始代码进行编译,得到第一中间代码;
对所述原始校验代码进行预编译,得到第二原始代码,并对所述第二原始代码进行编译,得到第二中间代码;
基于所述第一中间代码和第二中间代码,得到目标汇编代码;其中,所述目标汇编代码用于生成多段机器代码;所述多段机器代码用于生成对应的可执行文件;
所述基于所述第一中间代码和第二中间代码,得到目标汇编代码,包括:
在所述第二中间代码中插入免优化标识,作为第二免优化中间代码;
将所述第二免优化中间代码插入所述第一中间代码,得到第三中间代码;
对所述第三中间代码中未包含有免优化标识的部分进行优化,得到目标汇编代码;
其中,代码不同的优化等级对应不同数量的优化选项;每一优化选项对应不同功能的优化步骤;所述免优化标识表示不启动任何优化选项;代码的优化等级对应的优化选项,用于在启动时对该代码进行对应的功能的优化步骤的优化。
2.根据权利要求1所述的方法,其特征在于,所述基于所述第一中间代码和第二中间代码,得到目标汇编代码,包括:
对所述第一中间代码进行优化,得到第一优化中间代码;
将所述第二中间代码插入所述第一优化中间代码,得到目标汇编代码。
3.根据权利要求1或2所述的方法,其特征在于,所述编译器包含用于获取待优化代码的第一接口,以及用于获取免优化代码的第二接口;
所述获取应用程序的原始应用代码,以及获取用于对所述原始应用代码进行校验的原始校验代码,包括:
通过所述第一接口获取所述应用程序的原始应用代码,以及通过所述第二接口获取用于对所述原始应用代码进行校验的原始校验代码。
4.根据权利要求1所述的方法,其特征在于,所述原始校验代码包括:所述原始应用代码包含的各个子原始应用代码各自对应的校验代码;各个子原始应用代码中至少存在两个具有重叠部分的子原始应用代码。
5.一种代码生成装置,其特征在于,所述装置应用于编译器,所述装置包括:
原始代码获取模块,用于获取应用程序的原始应用代码,以及获取用于对所述原始应用代码进行校验的原始校验代码;
第一中间代码生成模块,用于对所述原始应用代码进行预编译,得到第一原始代码,并对所述第一原始代码进行编译,得到第一中间代码;
第二中间代码生成模块,用于对所述原始校验代码进行预编译,得到第二原始代码,并对所述第二原始代码进行编译,得到第二中间代码;
目标汇编代码生成模块,用于基于所述第一中间代码和第二中间代码,得到目标汇编代码;其中,所述目标汇编代码用于生成多段机器代码,所述多段机器代码用于生成对应的可执行文件;
所述目标汇编代码生成模块,包括:
第二免优化中间代码生成子模块,用于在所述第二中间代码中插入免优化标识,作为第二免优化中间代码;
第三中间代码生成子模块,用于将所述第二免优化中间代码插入所述第一中间代码,得到第三中间代码;
第一目标汇编代码生成子模块,用于对所述第三中间代码中未包含有免优化标识的部分进行优化,得到目标汇编代码;
其中,代码不同的优化等级对应不同数量的优化选项;每一优化选项对应不同功能的优化步骤;所述免优化标识表示不启动任何优化选项;代码的优化等级对应的优化选项,用于在启动时对该代码进行对应的功能的优化步骤的优化。
6.根据权利要求5所述的装置,其特征在于,所述中间代码获取模块,包括:
第一中间代码生成子模块,用于对所述原始应用代码进行预编译,得到第一原始代码,并对所述第一原始代码进行编译,得到第一中间代码;
第二中间代码生成子模块,用于对所述原始校验代码进行预编译,得到第二原始代码,并对所述第二原始代码进行编译,得到第二中间代码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇艺世纪科技有限公司,未经北京奇艺世纪科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110973058.4/1.html,转载请声明来源钻瓜专利网。