基于抽象语法树的程序代码相似性快速比较方法

    公开(公告)号:CN109445834A

    公开(公告)日:2019-03-08

    申请号:CN201811273830.6

    申请日:2018-10-30

    Abstract: 本发明涉及一种基于抽象语法树的程序代码相似性快速比较方法,涉及代码复用技术领域。本发明的基于抽象语法树的程序代码相似性快速比较方法,该方法通过构造程序抽象语法树,然后基于抽象语法树提取程序代码特征,并将代码特征哈希化,最后通过计算代码特征哈希值的汉明距离进行代码相似性的判定。该方法以程序代码抽象语法树为比较对象,同时结合Simhash与倒排索引技术,将程序代码的相似性比较转化成代码特征哈希值的比较。在保证高准确率和召回率的前提下,这种方法不仅能够实现程序代码的快速相似性比较,而且还能够满足针对海量代码进行快速相似性比较的需要。该方法具有较好的时间和空间复杂度,能够适应针对海量代码的相似性比较应用场景,从而为软件代码复用及溯源提供支持手段。

Patent Agency Ranking