Upptäcka kod kloner har många program för programvaruteknik. Befintliga metoder antingen inte skala till stora kodbaser eller inte är robusta mot mindre kodändringar. I detta dokument presenterar vi en effektiv algoritm för att identifiera liknande underträd och tillämpa den på träd representationer av källkod. Vår algoritm är baserad på en ny karakterisering av delträd med numeriska vektorer i Euclidean utrymme R n och en effektiv algoritm för att kluster dessa vektorer w.r.t. Det euklideiska avståndsmåttet. Subträd med vektorer i ett kluster anses vara likartade. Vi har implementerat vår trädlikviditetsalgoritm som ett klondetekteringsverktyg kallat DECKARD och utvärderat den på stora kodbaser skrivna i C och Java inklusive Linuxkärnan och JDK. Våra experiment visar att DECKARD är både skalbart och korrekt. Det är också språkoberoende, tillämpas på alla språk med en formellt specificerad grammatik. - Vad är det för fel på dig?
För att öka robustheten mot kodändringar karakteriserar DECKARD REF abstrakta syntaxträd som numeriska vektorer och grupperade dessa vektorer wrt.
DECKARD: Scalable and Accurate Tree-Based Detection of Code Clones
{'venue': "29th International Conference on Software Engineering (ICSE'07)", 'journal': "29th International Conference on Software Engineering (ICSE'07)", 'mag_field_of_study': ['Computer Science']}