본 논문은 효율성과 확장성에는 큰 비중을 두지 않으면서 가능한 최고 수준의 정밀도와 재현율을 제공하는 코드-클론 탐지 방법을 제안한다. 이 방법의 목표는 클론 탐지 도구의 정밀도와 재현율을 평가하기 위한 기반으로 사용할 수 있는 신뢰할 수 있는 참조 코퍼스를 자동으로 생성하는 것이다. 알고리즘은 소스 코드의 추상 구문 트리(Abstract Syntax Tree) 표현을 취하고, 트리 내의 모든 중복 트리 패턴 쌍에 대해 가능한 한 모든 경우를 철저히 조사하되, 가능한 범위 내에서 불필요하고 중복된 비교는 회피한다. 그 다음, 가능한 한 가장 큰 중복 패턴들을 패턴 클러스터의 집합으로 수집하며, 이 클러스터들은 코드 클론을 식별하는 데 사용된다. 이 방법은 표준적인 오픈소스 Java 애플리케이션의 집합에 대해 구현되고 평가되었다. 실험 결과는 매우 높은 정밀도와 재현율을 보여준다. 본 방법이 놓친 거짓부정 클론(false-negative clones)은 모두 비연속(non-contiguous) 클론이다. 마지막으로, 비연속 클론과 얽힌(intertwined) 클론을 탐지함으로써 재현율을 향상시키는 데 사용할 수 있는 이웃 패턴(neighbor patterns) 개념을 제안한다.
*본 초록은 AI를 통해 원문을 번역한 내용입니다. 정확한 내용은 하기 원문에서 확인해주세요.