首页 文章

如何确定2个代码片段在功能上是否相同?

提问于
浏览
0

给定2个代码片段,我想检查它们是否在功能上相似 . 通过功能相似性,我的意思是当提供相同的输入时它们应该产生相同的输出 . 我正在使用以下代码片段从给定的代码段中提取功能集:

  • Syntactic Approach :使用基本的NLP技术,如词干,分裂等 .

  • Semantic Approach :使用AST来规范化代码片段,例如:将'for'转换为'while'等 .

在形成令牌之后,我使用主题建模算法,如潜在Dirichlet分配,概率潜在语义索引等,以查找给定代码片段中的主题并将其与其他代码片段的主题相匹配 . 虽然我理解这是一个难题,但这种方法的准确性远低于我的预期 .

如果我能够获得更好的算法/技术的任何指针/想法将是更好的 .

Edit :我不期待通用方法 . 任何能够以一定精度给出近似结果的方法都可以 .

1 回答

  • 3

    请参阅https://en.wikipedia.org/wiki/Rice%27s_theorem - 它是一种通用算法,可以实现您想要的效果 . 你可能会发现某些东西在某些情况下或某种语言的特定子集中起作用,但从不适用于一般情况 .

相关问题