【技术实现步骤摘要】
一种代码处理方法、装置及存储介质
[0001]本申请要求于2020年9月21日提交中国知识产权局、申请号为202010996387.6、申请名称为“一种代码处理方法、装置及存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
[0002]本申请实施例涉及代码处理
,尤其涉及一种代码处理方法、装置及存储介质。
技术介绍
[0003]x86平台,是一种英特尔公司主导开发的通用计算平台,具体是对一系列基于Intel 8086且向后兼容的中央处理器指令集架构的泛指。自1978年面世以来,x86平台,经过多年积累,演化出庞大且复杂的指令集。
[0004]实际应用中,开发人员通常会基于x86平台开发出能够应用于x86平台的各种软件,由此构建出了庞大的软件生态群。因此,目前很多应用软件可能仅能只能适用于x86平台,而无法适用于其它平台,如ARMv8平台(一种由ARM公司发布的支持64位指令集的处理器架构)等。
[0005]在构建ARMv8平台或者其它平台的软件生态时,通常是由技术人员根据该平台的代码规则(如指令集等)编写软件代码,以使得开发出的软件能够适用于该平台。但是,这种为该平台开发新软件的难度通常较高,软件开发效率较慢,这就使得构建ARMv8平台或者其它平台的软件生态的难度较高。为此,目前亟需一种能够降低构建平台软件生态难度的方法。
技术实现思路
[0006]本申请实施例提供一种代码处理方法、装置及存储介质,用以降低构建平台的软件生态的难度。
[0007] ...
【技术保护点】
【技术特征摘要】
1.一种代码处理方法,其特征在于,所述方法包括:获取应用于源平台的基于低级语言的第一代码;对所述第一代码进行反编译,得到第一中间表示IR;将所述第一IR编译成应用于第一目标平台的基于低级语言的第二代码,所述源平台与所述第一目标平台具有不同指令集。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:对所述第一代码进行反编译,得到第二目标平台对应的IR,所述第一IR与所述第二目标平台对应的IR不同,所述第一目标平台与所述第二目标平台具有不同指令集。3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:呈现目标平台选择界面;响应针对于目标平台的选择操作,从多个目标平台中确定出所述第一目标平台。4.根据权利要求1至3任一项所述的方法,其特征在于,所述对所述第一代码进行反编译,得到第一中间表示IR,包括:获取所述第一代码的注解信息,所述注解信息包括所述第一代码中参数的类型、数量、跳转地址种类中的任意一种或者多种;根据所述注解信息,对所述第一代码进行反编译,得到所述第一IR。5.根据权利要求1至4任一项所述的方法,其特征在于,所述对所述第一代码进行反编译,得到第一中间表示IR,包括:对所述第一代码进行反编译,得到第二IR;根据所述第一目标平台,对所述第二IR进行优化,得到所述第一IR。6.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:生成提示信息,所述提示信息用于针对待检查项进行提示,所述待检查项基于所述第一目标平台与所述源平台之间的差异生成;呈现所述提示信息。7.根据权利1至6任一项所述的方法,其特征在于,所述方法应用于云端,所述获取第一代码,包括:接收来自用户的第一代码;所述方法还包括:向所述用户发送所述第二代码。8.根据权利要求1至7任一项所述的方法,其特征在于,所述对所述第一代码进行反编译,包括:根据所述源平台对应的指令语义库,对所述第一代码进行反编译。9.根据权利要求8所述的方法,其特征在于,所述方法还包括:响应于针对所述指令语义库的修改操作,对所述指令语义库进行修改。10.根据权利要求1至9任一项所述的方法,其特征在于,所述获取应用于源平台的基于低级语言的第一代码,包括:获取应用于源平台的基于低级语言的第一代码以及基于高级语言的变量;所述对所述第一代码进行反编译,包括:将所述第一代码翻译成包括函数的第一IR,所述函数中包括形参,所述形参对应的实
参为所述变量。11.根据权利要求1至10任一项所述的方法,其特征在于,所述第一IR包括第一变量以及第二变量,所述第一变量具有第一逻辑地址,所述第二变量具有第二逻辑地址,所述第一逻辑地址与所述第二逻辑地址不同。12.根据权利要求1至11任一项所述的方法,其特征在于,所述对所述第一代码进行反编译,包括:根据所述目标平台函数调用约定或单指令流多数据流SIMD指令,对所述第一代码进行反编译。13.一种代码处理方法,其特征在于,所述方法包括:获取应用于源平台的基于低级语言的第一代码;输出第二代码,所述第二代码为应用于第一目标平台的基于低级语言的代码,所述第二代码是对所述第一代码进行处理得到的,所述源平台与所述第一目标平台具有不同指令集。14.根据权利要求13所述的方法,其特征在于,所述输出第二代码,包括:通过代码显示界面呈现所述第二代码。15.根据权利要求13或14所述的方法,其特征在于,所述方法应用于云端,所述获取第一代码,包括:接收来自用户的第一代码;所述输出所述第二代码,包括:向所述用户输出所述第二代码。16.根据权利要求13至15任一项所述的方法,其特征在于,所述方法还包括:呈现目标平台选择界面;响应针对于目标平台的选择操作,从多个目标平台中确定出所述第一目标平台。17.根据权利要求13至16任一项所述的方法,其特征在于,所述方法还包括:获取所述源平台对应的指令语义库,所述指令语义库用于对所述第一代码进行处理。18.根据权利要求17所述的方法,其特征在于,所述方法还包括:响应于针对所述指令语义库的修改操作,对所述指令语义库进行修改。19.根据权利要求13至18任一项所述的方法,其特征在于,所述方法还包括:生成提示信息,所述提示信息用于针对待检查项进行提示,所述待检查项基于所述第一目标平台与所述源平台之间的差异生成;呈现所述提示信息。20.根据权利要求13至19任一项所述的方法,其特征在于,所述方法还包括:呈现第一中间表示IR,所述第一IR是对所述第一代码进行反编译得到,所述第二代码是对所述第一IR进行编译得到。21.根据权利要求20所述的方法,其特征在于,所述方法还包括:呈现第二IR,所述第二IR是对所述第一代码进行反编译得到,所述第一IR是根据所述第一目标平台对所述第一IR进行优化得到。22.根据权利要求20或21所述的方法,其特征在于,所述方法还包括:响应于针对所述第一IR的修改操作,得到修改后的第一IR;
呈现第三代码,所述第三代码为应用于第一目标平台的基于低级语言的代码,所述第三代码是对所述修改后的第一IR进行编译得到的。23.根据权利要求20至22任一项所述的方法,其特征在于,所述方法还包括:呈现第三IR,所述第三IR是对所述第一代码进行反编译得到,所述第三IR用于生成应用于第二目标平台的基于低级语言的代码,所述第三IR与所述第一IR不同。24.根据权利要求13至23任一项所述的方法,其特征在于,方法还包括:响应于针对所述第二代码的修改操作,得到修改后的第二代码;输出所述修改后的第二代码。25.根据权利要求13至24任一项所述的方法,其特征在于,所述获取应用于源平台的基于低级语言的第一代码,包括:获取应用于源平台的基于低级语言的第一代码以及基于高级语言的变量。26.一种代码处理装置,其特征在于,所述装置包括:获取模块,用于获取应用于源平台的基于低级语言的第一代码;反编译模块,用于对所述第一代码进行反编译,得到第一中间表示IR;编译模块,用于将所述第一IR编译成应用于第一目标平台的基于低级语言的第二代码,所述源平台与所述第一目标平台具有不同指令集。27.根据权利要求26所述的装置,其特征在于,所述反编译模块,还用于对所述第一代码进行反编译,得到第二目标平台对应的IR,所述第一IR与所述第二目标平台对应的IR不同,所述第一目标平台与所述第二目标平台具有不同指令集。28.根据...
【专利技术属性】
技术研发人员:乐永年,黄波,惠卫锋,罗靖,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。