代码跨语言生成方法、装置、设备以及产品与流程

摘要: 本技术涉及软件工程自动化,尤其涉及一种代码跨语言生成方法、装置、设备以及产品。背景技术:1、在科学计算、工程仿真、数据分析、优化求解、统计建模等领域,算法函数常...
代码跨语言生成方法、装置、设备以及产品与流程

本技术涉及软件工程自动化,尤其涉及一种代码跨语言生成方法、装置、设备以及产品。

背景技术:

1、在科学计算、工程仿真、数据分析、优化求解、统计建模等领域,算法函数常需在不同编程语言与科学计算库间迁移,现有跨语言迁移主要包含两类实现方式,一类为人工迁移方式,通过人工查阅函数文档、编写适配代码、构造测试样例并分析执行结果完成迁移,另一类为基于大模型的代码生成方式,利用大模型对函数文档、源码片段的语义理解能力生成候选迁移代码,实现语法与接口层面的跨语言转换。

2、但现有技术存在明显缺陷,首先是人工迁移仅适用于简单标量函数,面对线性代数、矩阵分解、稀疏矩阵计算等复杂函数时,存在迁移成本高、场景覆盖不足、错误定位困难的问题,且难以沉淀可复用的函数映射规则,其次是大模型生成方式存在结果不确定性,缺少数值行为特征约束、映射置信度评估、执行级数值验证与闭环修正机制,易出现代码可运行但数值行为不一致的问题,常遗漏默认参数、索引基准、内存布局、异常处理及特殊值传播等差异,无法保障迁移后数值行为在工程容差范围内保持一致,难以满足科学计算场景的高可靠性要求。

3、上述内容仅用于辅助理解本技术的技术方案,并不代表承认上述内容是现有技术。

技术实现思路

1、本技术的主要目的在于提供一种代码跨语言生成方法、装置、设备以及产品,旨在解决现有人工迁移成本高、复用性差,且大模型迁移缺乏约束校验,无法满足科学计算可靠性需求的技术问题。

2、为实现上述目的,本技术提出一种代码跨语言生成方法,所述代码跨语言生成方法包括:

3、接收源代码信息,对所述源代码信息中的待迁移函数进行解析得到迁移对象描述表;

4、根据所述迁移对象描述表生成行为特征向量以及候选迁移规则集;

5、计算所述候选迁移规则集的置信度,并根据所述置信度,通过所述候选迁移规则集以及行为特征向量构建得到函数映射数据库;

6、通过所述函数映射数据库生成目标语言代码。

7、在一实施例中,所述对所述源代码信息中的待迁移函数进行解析得到迁移对象描述表的步骤包括:

8、对所述源代码信息进行多维度静态代码分析,得到所述待迁移函数的函数调用节点;

9、对所述函数调用节点的上下文语义进行语义解析,得到所述待迁移函数的接口定义信息、调用链路依赖关系以及运行环境约束信息;

10、对所述接口定义信息、调用链路依赖关系以及运行环境约束信息进行结构化整合;

11、在结构化整合完成后对所述接口定义信息、调用链路依赖关系以及运行环境约束信息进行标准化映射,得到迁移对象描述表。

12、在一实施例中,所述根据所述迁移对象描述表生成行为特征向量以及候选迁移规则集的步骤包括:

13、根据所述迁移对象描述表中的函数属性以及调用上下文信息,对所述待迁移函数的计算逻辑、数据组织以及运行行为进行分层解析,得到若干函数特征;

14、对所述若干函数特征进行归类汇总,得到多维度行为特征集合,并对所述多维度行为特征集合进行标准化编码,得到行为特征向量;

15、根据所述行为特征向量以及目标语言计算库的环境规格,通过语义理解模型进行语义推理得到候选迁移规则集。

16、在一实施例中,所述计算所述候选迁移规则集的置信度的步骤包括:

17、根据预设的迁移评分维度对所述候选迁移规则集进行单项评分,得到评分结果;

18、根据所述待迁移函数的函数类别对所述迁移评分维度进行权重分配,得到评分权重;

19、根据所述评分权重对所述评分结果进行加权融合计算,得到所述候选迁移规则集中若干迁移规则的置信度。

20、在一实施例中,所述根据所述置信度,通过所述候选迁移规则以及行为特征向量构建得到函数映射数据库的步骤包括:

21、通过置信度阈值对所述若干迁移规则的置信度进行比对,得到比对结果;

22、根据所述比对结果筛选出所述若干迁移规则中的有效映射规则,对所述有效映射规则进行映射类型分类,得到分类结果;

23、根据所述分类结果对所述有效映射规则进行行为特征向量绑定、适用条件绑定以及状态标识绑定,得到绑定结果;

24、通过所述分类结果以及绑定结果构建得到函数映射数据库。

25、在一实施例中,所述通过所述函数映射数据库生成目标语言代码的步骤包括:

26、根据所述迁移对象描述表,通过所述函数映射数据库匹配所述待迁移函数的目标映射规则;

27、根据所述目标映射规则对所述待迁移函数进行接口适配、数据结构转换以及运行兼容处理,得到初始目标语言代码;

28、对所述初始目标语言代码进行合规性校验,在校验结果为通过的情况下生成目标语言代码。

29、在一实施例中,所述通过所述函数映射数据库生成目标语言代码的步骤之后还包括:

30、根据所述待迁移函数生成测试用例;

31、将所述测试用例集分别在源语言运行环境以及目标语言运行环境中执行,得到源端运行结果以及目标端运行结果,并对所述源端运行结果以及目标端运行结果进行一致性校验,得到一致性校验结果;

32、若所述一致性校验结果为校验通过,则判定代码跨语言生成完成;

33、若所述一致性校验结果为校验不通过,则根据所述一致性校验结果确定差异来源,基于所述差异来源生成修正规则,将所述修正规则更新至所述函数映射数据库,并通过所述函数映射数据库进行迭代校验,直至校验通过。

34、此外,为实现上述目的,本技术还提出一种代码跨语言生成装置,所述代码跨语言生成装置包括:

35、接收模块,用于接收源代码信息,对所述源代码信息中的待迁移函数进行解析得到迁移对象描述表;

36、第一生成模块,用于根据所述迁移对象描述表生成行为特征向量以及候选迁移规则集;

37、构建模块,用于计算所述候选迁移规则集的置信度,并根据所述置信度,通过所述候选迁移规则集以及行为特征向量构建得到函数映射数据库;

38、第二生成模块,用于通过所述函数映射数据库生成目标语言代码。

39、此外,为实现上述目的,本技术还提出一种代码跨语言生成设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序配置为实现如上文所述的代码跨语言生成方法的步骤。

40、此外,为实现上述目的,本技术还提出一种存储介质,所述存储介质为计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文所述的代码跨语言生成方法的步骤。

41、此外,为实现上述目的,本技术还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如上文所述的代码跨语言生成方法的步骤。

42、本技术提出的一个或多个技术方案,至少具有以下技术效果:

43、本技术实施例提出的一种代码跨语言生成方法、装置、设备以及产品,通过接收源代码信息,对所述源代码信息中的待迁移函数进行解析得到迁移对象描述表;根据所述迁移对象描述表生成行为特征向量以及候选迁移规则集;计算所述候选迁移规则集的置信度,并根据所述置信度,通过所述候选迁移规则集以及行为特征向量构建得到函数映射数据库;通过所述函数映射数据库生成目标语言代码。由此,先解析待迁移函数生成迁移对象描述表,随后依靠迁移对象描述表生成行为特征向量约束大模型输出候选规则,避免数值差异遗漏,对规则加权计算置信度筛选有效规则并建库,实现规则复用,降低人工迁移成本,根据映射库生成目标代码,配套数值校验闭环,补齐大模型缺失的约束校验,保障科学计算数值可靠性,解决了现有人工迁移成本高、复用性差,且大模型迁移缺乏约束校验,无法满足科学计算可靠性需求的问题,提高了代码跨语言生成的效率。