System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及软件领域,尤其是涉及一种软件跨平台移植方法。
技术介绍
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,根据架构相关代码数据以平台一段编译算法本文档来自技高网...
【技术保护点】
1.一种软件跨平台移植方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的软件跨平台移植方法,其特征在于,所述架构代码识别定位算法包括以下步骤:
3.根据权利要求2所述的软件跨平台移植方法,其特征在于,还包括以下步骤用于训练显隐性架构识别模型:
4.根据权利要求3所述的软件跨平台移植方法,其特征在于,还包括以下步骤用于训练显式架构分类模型:
5.根据权利要求4所述的软件跨平台移植方法,其特征在于,还包括以下步骤用于训练隐式架构分类模型:
6.根据权利要求5所述的软件跨平台移植方法,其特征在于,所述改进一段编译方法包括以下步骤:
7.根据权利要求6所述的软件跨平台移植方法,其特征在于,所述改进二段编译方法包括以下步骤:
8.根据权利要求7所述的软件跨平台移植方法,其特征在于,所述代码特征提取算法包括以下步骤:
【技术特征摘要】
1.一种软件跨平台移植方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的软件跨平台移植方法,其特征在于,所述架构代码识别定位算法包括以下步骤:
3.根据权利要求2所述的软件跨平台移植方法,其特征在于,还包括以下步骤用于训练显隐性架构识别模型:
4.根据权利要求3所述的软件跨平台移植方法,其特征在于,还包括以下步骤用于训练显式架构分类模型:
5.根...
【专利技术属性】
技术研发人员:郭辉,胡明光,裴高翔,沈铖涛,董明,姚拓中,叶宏武,陈丹儿,
申请(专利权)人:浙江金网信息产业股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。