编程语言的对比评估方法及装置与流程
本技术涉及人工智能领域,尤其涉及一种编程语言的对比评估方法及装置。
背景技术:
1、随着软件产业的持续演进,编程语言生态呈现出“主流语言长期主导、新兴语言不断涌现”的格局。然而,当前国际主流的编程语言测试与基准测试工具(如spec、benchmarkgame等),其底层解析引擎与运行时探测逻辑均是针对c、java、python等传统主流编程语言设计,存在显著的语法绑定与运行时耦合问题。具体而言,现有测试工具无法有效适配新兴编程语言特有的语法结构、内存管理机制及运行时环境(runtime environment),导致针对新兴编程语言的测试过程往往面临“无工具可用”或“强行适配导致结果失真”的困境。
2、这种技术上的不兼容性,直接导致新兴编程语言缺乏统一的量化评价标准,难以与传统主流编程语言在功能完备性、执行性能及安全性等关键维度上进行客观、公正的横向对比。在技术推广与应用选型阶段,由于缺乏权威的第三方测试数据支撑,新兴编程语言极易受到开发者的质疑,严重制约了其生态建设与市场普及进程。
技术实现思路
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、能够生成结构化的全量测试报告及细粒度的错误诊断信息,突破了现有技术仅反馈单一通过/失败结果的局限。使用者可据此快速掌握目标编程语言的语法特性、运行时表现及稳定性边界,从而在语言选型、代码重构等环节做出更为准确的判断,从源头上提高开发效率,保障交付软件的整体质量。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com