一种软件跨平台移植方法与流程

专利检索2025-11-25  15


本技术涉及软件领域,尤其是涉及一种软件跨平台移植方法。


背景技术:

1、近年来,随着信创产业的发展推进,相关的问题也逐步显现。应用软件的跨平台移植面临成本高昂,难度大,性能受限等难题,已成为当今信创行业的一大痛点,这不仅导致信创产业市场碎片化,也阻碍了其生态的发展。这一问题的根源来自信创领域基础硬件与应用软件之间的互不兼容。

2、以现代计算机的核心中央处理器(cpu)为例:信创领域的处理器种类繁多,包括兆芯和海光基于x86授权的处理器、飞腾和华为基于arm授权的处理器、龙芯和申威基于自研指令集的处理器等,作为硬件的基础和核心,上述处理器和指令集之间互不兼容,从根本上形成了软件适配和研发的阻碍。在此基础上,传统的编译技术通常采用从源码直接编译到目标平台指令集,并以编译后的二进制格式进行分发,这一编译与分发流程使得传统应用与软硬件系统垂直绑定,将硬件平台互不兼容的问题带入了软件适配与开发的流程之中。即使是java等支持跨平台的编程语言开发的应用软件,因为其使用的第三方库、开发框架等往往具有平台依赖特性,对最终应用软件而言,跨平台移植问题也是难以避免的。

3、2019年,图灵奖得主johnl.hennessy和davida. patterson 指出:领域专用体系结构和领域专用语言是未来计算机体系结构发展的重要方向。显然,多样化的编程语言和领域专用架构会进一步加剧应用软件的跨平台移植面临成本高昂,难度大,性能受限等难题。如何高效利用复杂多变的领域专用体系结构同时实现软件的高效适配问题将是软件和编译领域必须思考的问题。


技术实现思路

1、为了能够于多处理器种类、多架构场景下降低应用软件的跨平台移植成本和难度,本技术提供了一种软件跨平台移植方法。

2、所述软件跨平台移植方法,包括以下步骤:

3、a1,根据预设的源代码数据以预设的架构代码识别定位算法获得架构相关代码数据和架构无关代码数据;

4、a2,根据构架无关代码数据以预设的一段编译方法生成架构无关代码中间表示数据;

5、a3,根据架构无关代码中间表示数据以预设的架构语义解析算法获得去架构语义中间表示数据;

6、a4,根据去架构语义中间表示数据以预设的二段编译方法生成架构无关硬件指令序列;

7、a5,根据架构相关代码数据和预设的拟支持硬件平台信息集以预设的改进一段编译方法生成混合语义体架构数据;

8、a6,根据混合语义体架构数据和预设的目标硬件平台信息以预设的改进二段编译方法生成架构相关硬件指令序列;

9、a7,根据架构无关硬件指令序列和架构相关硬件指令序列生成目标硬件平台指令序列。

10、通过以上步骤,所述软件跨平台移植方法可以从源代码中分离出架构相关代码和架构无关代码,分别对架构相关代码和架构无关代码进行编译处理,并根据需要进行移植的硬件平台处理架构相关代码,最终生成源代码对应的硬件平台的指令序列。

11、可选的,所述架构代码识别定位算法包括以下步骤:

12、b1,根据源代码数据以预训练的架构代码识别模型识别获得架构相关代码定位数据;

13、b2,根据架构相关代码定位数据和预设的上下文宽度值获得架构相关代码片段数据;

14、b3,根据架构相关代码片段数据以预训练的显隐性架构识别模型生成显式架构相关代码片段数据和隐式架构相关代码片段数据;

15、b4,根据显式架构相关代码片段数据以预训练的显式架构分类模型生成显式架构代码分类数据;

16、b5,根据隐式架构相关代码片段数据以预训练的隐式架构分类模型生成隐式架构代码分类数据;

17、b6,根据显式架构相关代码片段数据和对应的显式架构代码分类数据、隐式架构相关代码片段数据和对应的隐式架构代码分类数据生成架构相关代码数据。

18、通过以上步骤,所述软件跨平台移植方法可以先对架构相关代码片段分为显式架构相关代码片段数据和隐式架构相关代码片段数据,再分别对显式架构相关代码片段数据和隐式架构相关代码片段数据进行分类,使后续操作可以针对分类后的不同情况进行分别处理。

19、可选的,所述软件跨平台移植方法还包括以下步骤用于训练显隐性架构识别模型:

20、c1,根据预设的架构相关代码案例库获取架构相关代码案例数据和对应的显隐式信息;

21、c2,根据架构相关代码案例数据和对应的显隐式信息以预设的代码特征提取算法生成显式相关代码特征数据和隐式相关代码特征数据;

22、c3,根据显式相关代码特征数据、隐式相关代码特征数据和对应的显隐式信息生成显隐式训练数据集;

23、c4,根据显隐式训练数据集训练预设的人工智能模型生成显隐性架构识别模型。

24、通过以上步骤,所述软件跨平台移植方法可以基于现有的架构相关代码案例库中的案例代码进行特征提取并生成训练数据集,供训练对应的显隐式识别的人工智能模型,以实现对拟移植的源代码进行显隐式代码的分别。

25、可选的,所述软件跨平台移植方法还包括以下步骤用于训练显式架构分类模型:

26、d1,根据显式相关代码特征数据于架构相关代码案例库获取对应的显式相关分类信息;

27、d2,根据显式相关分类信息以预设的信息特征提取算法生成显式信息向量数据;

28、d3,根据显式相关代码特征数据和对应的显式信息向量数据生成显式分类训练数据集;

29、d4,根据显式分类训练数据集训练预设的第一分类模型生成显式架构分类模型。

30、通过以上步骤,所述软件跨平台移植方法可以基于显式相关代码特征数据对应的显式相关分类信息进行信息特征提取,并根据显式相关代码特征数据和对应分类信息特征训练生成显式架构分类模型,以实现对显式架构相关代码的分类识别。

31、可选的,所述软件跨平台移植方法还包括以下步骤用于训练隐式架构分类模型:

32、e1,根据隐式相关代码特征数据于架构相关代码案例库获取对应的隐式相关分类信息;

33、e2,根据隐式相关分类信息以信息特征提取算法生成隐式信息向量数据;

34、e3,根据隐式相关代码特征数据和对应的隐式信息向量数据生成隐式分类训练数据集;

35、e4,根据隐式分类训练数据集训练预设的第二分类模型生成隐式架构分类模型。

36、通过以上步骤,所述软件跨平台移植方法可以基于隐式相关代码特征数据对应的隐式相关分类信息对应的隐式相关代码特征数据训练生成隐式架构分类模型,以实现对隐式架构相关代码的分类识别。

37、可选的,所述改进一段编译方法包括以下步骤:

38、f1,逐一于拟支持硬件平台信息集中获取拟支持硬件平台信息;

39、f2,根据拟支持硬件平台信息确定对应的预设的平台一段编译算法;

40、f3,根据架构相关代码数据以平台一段编译算法生成对应的平台中间表示数据;

41、f4,根据所有的平台中间表示数据组合为混合语义体架构数据。

42、通过以上步骤,所述软件跨平台移植方法可以遍历拟支持的目标平台架构,依据每个目标平台架构调用对应的平台一段编译算法处理架构相关代码数据并生成对应的中间表示数据,使其可以在后续的软件移植中提高可移植性。

43、可选的,所述改进二段编译方法包括以下步骤:

44、g1,传输混合语义体架构数据至预设的目标硬件平台;

45、g2,于目标硬件平台根据目标硬件平台信息于混合语义体架构数据获取对应的平台中间表示数据并定义为当前平台中间表示数据;

46、g3,于目标硬件平台根据当前平台中间表示数据以预设的平台二段编译算法生成架构相关硬件指令序列。

47、通过以上步骤,所述软件跨平台移植方法可以于对应的需要进行软件移植的硬件平台上进行二段编译,可以丢弃其他平台相关的中间表示数据,并使用目标硬件平台的预设的工具链实现二段编译,依此可以提高软件的跨架构适配能力,减少在不同架构之间迁移的成本。

48、可选的,所述代码特征提取算法包括以下步骤:

49、h1,根据预设的目标代码片段以预设的token化算法生成token序列;

50、h2,根据token序列以预设的统计算法生成token计数数据并定义为词汇特征数据;

51、h3,根据token序列以预设的token类型识别算法生成对应的token类型数据;

52、h4,根据token序列和token类型数据统计生成token类型比例数据并定义为结构特征数据;

53、h5,根据目标代码片段以预设的抽象语法树算法生成代码语法树;

54、h6,根据token类型数据于代码语法树统计特定类型节点数量数据并定义为语法特征数据;

55、h7,以预设的遍历算法遍历代码语法树并根据token类型数据识别对应的变量引用信息,并对变量引用进行计数以生成变量引用频率数据,定义变量引用频率数据为语义特征数据;

56、h8,根据词汇特征数据、结构特征数据、语法特征数据和语义特征数据组合生成代码特征数据。

57、通过以上步骤,所述软件跨平台移植方法可以对代码片段进行多方面的特征提取,以全面地反映代码片段的信息特征,进而可以更好地用于识别模型的训练,也可以在后续的识别中提高识别准确度。

58、综上所述,本技术包括以下至少一种有益技术效果:

59、1.所述软件跨平台移植方法可以从源代码中分离出架构相关代码和架构无关代码,分别对架构相关代码和架构无关代码进行编译处理,并根据需要进行移植的硬件平台处理架构相关代码,最终生成源代码对应的硬件平台的指令序列;

60、2.所述软件跨平台移植方法可以先对架构相关代码片段分为显式架构相关代码片段数据和隐式架构相关代码片段数据,再分别对显式架构相关代码片段数据和隐式架构相关代码片段数据进行分类,使后续操作可以针对分类后的不同情况进行分别处理;

61、3.所述软件跨平台移植方法可以基于现有的架构相关代码案例库中的案例代码进行特征提取并生成训练数据集,供训练对应的显隐式识别的人工智能模型,以实现对拟移植的源代码进行显隐式代码的分别。


技术特征:

1.一种软件跨平台移植方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的软件跨平台移植方法,其特征在于,所述架构代码识别定位算法包括以下步骤:

3.根据权利要求2所述的软件跨平台移植方法,其特征在于,还包括以下步骤用于训练显隐性架构识别模型:

4.根据权利要求3所述的软件跨平台移植方法,其特征在于,还包括以下步骤用于训练显式架构分类模型:

5.根据权利要求4所述的软件跨平台移植方法,其特征在于,还包括以下步骤用于训练隐式架构分类模型:

6.根据权利要求5所述的软件跨平台移植方法,其特征在于,所述改进一段编译方法包括以下步骤:

7.根据权利要求6所述的软件跨平台移植方法,其特征在于,所述改进二段编译方法包括以下步骤:

8.根据权利要求7所述的软件跨平台移植方法,其特征在于,所述代码特征提取算法包括以下步骤:


技术总结
本申请公开了一种软件跨平台移植方法,用于提高应用软件的跨平台移植效率,包括以下步骤:根据源代码数据以架构代码识别定位算法获得架构相关代码数据和架构无关代码数据;根据构架无关代码数据以一段编译方法生成架构无关代码中间表示数据;根据架构无关代码中间表示数据以架构语义解析算法获得去架构语义中间表示数据;根据去架构语义中间表示数据以二段编译方法生成架构无关硬件指令序列;根据架构相关代码数据以改进一段编译方法生成混合语义体架构数据;根据混合语义体架构数据和目标硬件平台信息以改进二段编译方法生成架构相关硬件指令序列;根据架构无关硬件指令序列和架构相关硬件指令序列生成目标硬件平台指令序列。

技术研发人员:郭辉,胡明光,裴高翔,沈铖涛,董明,姚拓中,叶宏武,陈丹儿
受保护的技术使用者:浙江金网信息产业股份有限公司
技术研发日:
技术公布日:2024/5/29
转载请注明原文地址:https://win.8miu.com/read-1158805.html

最新回复(0)