【技术实现步骤摘要】
【国外来华专利技术】使用测试向量自动验证高级构造的优化
[0001]本公开总体上涉及计算技术,并且更具体地涉及用于提高可执行程序代码的性能的方法、计算机程序产品和数据处理系统。
技术介绍
[0002]计算机软件包括由数据处理系统执行的指令集。计算机软件提供的指令使数据处理系统能够起到诸如字处理设备、电子表格设备或因特网浏览设备、数据存储库等的作用。存在能够使用计算机软件的各种各样的不同数据处理系统。因此,如本文所使用的,术语“数据处理系统”旨在具有广泛的含义,并且可以包括个人计算机、膝上型计算机、掌上型计算机、手持式计算机、网络计算机、服务器、大型机、工作站、蜂窝电话和类似的无线设备、个人数字助理和可安装计算机软件的其他电子设备。术语“计算机”、“计算机软件”、“计算机程序”、“计算机编程”、“软件”、“软件程序”和相关术语旨在具有类似广泛的含义。
[0003]通常,现代计算机软件最初使用程序员可理解的语法构造以“高级”计算机编程语言编写以表示在软件中体现的指令。高级计算机编程语言是有用的,因为它们的语法构造使得程序员更容易创建计算机软 ...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】1.一种用于高级构造的优化的自动验证的计算机实现的方法,所述方法包括:由编译器通过编译计算机程序来生成第一可执行代码,所述计算机程序包括高级构造,并且所述编译包括:生成用于所述高级构造的第一组机器指令;以及在所述第一可执行代码中存储用于所述高级构造的编译时间信息;以及由二进制优化器对所述第一可执行代码进行优化,所述优化包括:将所述第一可执行代码转换成所述计算机程序的中间语言(IL)表示,所述IL表示包括基于所述编译时间信息对应于所述高级构造的一组IL指令;以及基于所述计算机程序的所述IL表示生成第二可执行代码,其中生成所述第二可执行代码包括:基于所述高级构造的所述IL表示生成用于所述高级构造的第二组机器指令;基于所述第一组机器指令和所述第二组机器指令在行为上匹配的确定,将所述第二组机器指令包括在所述第二可执行代码中,以及基于所述第一组机器指令和所述第二组机器指令在行为上不匹配的确定,将所述第一组机器指令包括在所述第二可执行代码中。2.根据权利要求1所述的计算机实现的方法,其中,所述第一组机器指令和所述第二组机器指令在行为上匹配的所述确定是基于可满足性求解器。3.根据前述权利要求中任一项所述的计算机实现的方法,其中,确定所述第一组机器指令和所述第二组机器指令在行为上匹配包括:生成包括多个测试的测试向量;针对与所述高级构造相关联的所述第一组机器指令和所述第二组机器指令执行所述测试向量中的每个测试;以及比较所述测试向量中的所述每个测试的输出,其中,基于针对所述第一组机器指令和所述第二组机器指令的所述输出中的每个输出匹配,确定所述行为匹配。4.根据权利要求3所述的计算机实现的方法,其中,执行所述测试向量中的测试包括:创建用于所述第一组机器指令的第一包装器函数;根据要执行的所述测试用输入来执行所述第一包装器函数,并且收集第一组输出;为所述第二组机器指令创建第二包装器函数;以及根据要执行的所述测试用所述输入来执行所述第二包装器函数,以及收集第二组输出。5.根据权利要求4所述的计算机实现的方法,其中,所述第一包装器函数被封装在第一异常处理程序中,并且所述第二包装器函数被封装在第二异常处理程序中。6.根据权利要求3至5中任一项所述的计算机实现的方法,其中,基于测试的第一输出是所述第一组机器指令的异常,以及所述测试的第二输出是所述第二组机器指令的所述异常,确定所述行为匹配。7.根据前述权利要求中任一项所述的计算机实现的方法,其中,所述编译时间信息包括所述高级构造的身份、所述第一组机器指令的位置、所述第一组机器指令的输入和输出的位置。8.根据前述权利要求中任一项所述的计算机实现的方法,其中,所述编译器是编译器的第一实例,并且具有与所述编译器的第一实例的设置不同的设置的所述编译器的第二实
例用于生成所述第二可执行代码。9.根据前述权利要求中任一项所述的计算机实现的方法,其中,基于对于一组输入,所述第一组机器指令和所述第二组机器指令在行为上不匹配的确定:生成第三可执行代码,所述第三可执行代码包括所述第一组机器指令、所述第二组机器指令以及检查对所述高级构造的输入的附加函数,并且响应于所述输入来自预定组输入,引起所述第一组机器指令的执行,否则引起所述第二组机器指令的执行。10.根据权利要求9所述的方法,其中,确定所述第一组机器指令和所述第二组机器指令在行为上匹配包括:生成包括多个测试的测试向量;针对与所述高级构造相关联的所述第一组机器指令和所述第二组机器指令执行所述测试向量中的每个测试;以及比较所述测试向量中的所述每个测试的输出,其中,基于针对所述第一组机器指令和所述第二组机器指令的所述输出中的每个输出匹配,确定所述行为匹配。11.根据权利要求10所述的计算机实现的方法,其中,执行所述测试向量中的测试包括:创建用于所述第一组机器指令的第一包装器函数;根据要执行的所述测试用输入来执行所述第一包装器函数,并且收集第一组输出;创建用于所述第二组机器指令的第二包装器函数;以及根据要执行的所述测试用所述输入来执行所述第二包装器函数,以及收集第二组输出。12.一种系统,包括:存储器;以及与所述存储器耦合的处理器,所述处理器被配置为执行用于高级构造的优化的自动验证的方法,所述方法包括:由编译器通过编译计算机程序来生成第一可执行代码,所述计算机程序包括高级构造,并且所述编译包括:生成用于所述高级构造的第一组机器指令;以及在所述第一可执行代码中存储用于所述高级构造的编译时间信息;以及由二进制优化器对所述第一可执行代码进行优化,所述优化包括:将所述第一可执行代码转换成中间语言(IL)表示,所述IL表示包括基于所述编译时间信息对应于所述高级构造的一组IL指令;基于所述IL表示生成第二可执行代码,所述第二可执行代码包括用于所述高级构造的第二组机器指令;由所述二进制优化器将所述第一组机器指令和所述第二组机器指令进行比较;以及基于所述第一组机器指令和所述第二组机器指令在行为上匹配的确定,用所述第二可执行代码替换所述第一可执行代码。13.根据权利要求12所述的系统,其中,所述第一组机器指令和所述第二组机器指令在所述行为上匹配的所述确定是基于可满足性求解器。14.根据权利要求12或13所述的系统,其中,确定所述第一组机器指令和所述第二组机
器指令在行为上匹配包括:生成包括多个测试的测试向量;针对与所述高级构造相关联的所述第一组机器指令和所述第二组机器指令执行所述测试向量中的每个测试;以及比较所述测试向量中的所述每个测试的输出,其中,基于针对所述第一组机器指令和所述第二组机器指令的所述输出中的每个输出匹配,确定所述行为匹配。15.根据权利要求14所述的系统,其中,执行所述测试向量中的测试包括:创建用于所述第一组机器指令的第一包装器函数;根据要...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。