我正在尋找一種可以比較源代碼的相似性的工具。類似代碼檢測器
現在我們有一個非常微不足道的系統,它有大量的誤報,真正的積極因素可以很容易地被埋入其中。
我的要求是:
- 相當少量的誤報
- 良好的檢出率(是的,這些都是違背對方) 的不僅僅是單個值一個更加複雜的輸出
- 理想
- 可用於C(C99)和C++(C++ 03和最佳C++ 11)
- 仍然保持
- 可用於共mparing在非交互式模式相對於彼此
- 可用兩個源文件
編輯:
爲了避免混淆,以下兩個代碼段是相同的,並應被檢測爲這樣:
for (int i = 0; i < 10; i++) { bla; }
int i; while (i < 10) { bla; i++; }
同樣在這裏:
int x = 10; y = x + 5;
int a = 10; y = a + 5;
差異是否滿足您的一些需求? –
@HighPerformanceMark大聲笑,不,它不。 –
它看起來好像您需要一種工具來比較2個代碼的語義相似性,而不是語法。我懷疑這是一個未解決的問題,因此將很難爲您找到滿意的解決方案。我認爲,正如你所寫的,你原來的問題會誤導很多讀者,就像它誤導了我。我也認爲你應該完全重寫,以清楚地說明你對哪種比較感興趣。 –