发明名称 Program analyzer for comparing programs
摘要 In one configuration, a program analyzer for comparing a first and second program is disclosed. The analyzer may be stored on tangible computer readable storage media, and configured to be executed by a processor of a computer. Each program may comprise a plurality of blocks, each block comprising a block identifier. The analyzer may comprise a preparation process, a comparison process, a refinement process, a repetition process, and an output process.
申请公布号 US8997046(B1) 申请公布日期 2015.03.31
申请号 US201213598968 申请日期 2012.08.30
申请人 Google Inc. 发明人 McFarlane Roger Delano Paul;Hamilton Christopher Howard;Dingle Eric;Ásgeirsson Sigurôur Eggert
分类号 G06F9/44 主分类号 G06F9/44
代理机构 McDermott Will & Emery LLP 代理人 McDermott Will & Emery LLP
主权项 1. A non-transitory computer readable storage media comprising instructions for a program analyzer stored therein, which when executed by one or more processors, cause the one or more processors to perform operations, the program analyzer configured to compare a first program and a second program; each program comprising a plurality of blocks; each block comprising a block identifier and a semantic meaning; the operations comprising: a preparation process comprising: generating a first block graph of the first program;applying, with a signature generator, a function to blocks from the first block graph to generate first signatures;storing the first signatures from the first block graph in a first list;generating a second block graph of the second program;applying, with the signature generator, the function to the blocks from the second block graph to generate second signatures; andstoring the second signatures from the second block graph in a second list; a comparison process comprising: identifying signatures that appear only once in the first list;identifying signatures that appear only once in the second list;determining block numbers associated with the identified signatures that appear either in the first list or the second list, but not in both lists; andgenerating a first map to comprise the block numbers associated with the identified signatures that appear in both the first list and the second list; a refinement process comprising: selecting a second function for use by the signature generator; andgenerating new signatures for the blocks from the first and second block graphs using the second function, wherein fewer duplicate signatures are generated; a repetition process comprising repeating the comparison process and refinement process until a condition is met; and an output process comprising outputting the first map comprising a correlation between block numbers in the first program and block numbers in the second program, wherein the first map represents blocks that are likely to have matching semantic meanings in the first and second programs.
地址 Mountain View CA US