今天突然想到管理代码库的时候,可能需要给代码查重,尤其是接受新提交、PR时 #每天一个idea#
然后果然发现已经有人做过了,还有不少思路
词法分析的,典型是PMD这个源码静态分析器,CPD(Copy/Paste Detector)功能是靠CpdLexer实现的,支持18种编程语言,而且每个月更新一个小版本。🔗:pmd.github.io
也有用AST来检测的,这个适配工作应该很重。Deckard、CloneDR看起来都挺老了
图一来源于simian的官网(simian.quandarypeak.com),听说它是直接基于文本分析的,但没有在官网文档找到相关描述。只知道速度很快,支持多种语言
基于图的、向量的很少。没有找到值得一提的