Trots ett decennium av aktiv forskning, har det funnits en tydlig brist i klon detektion tekniker som skala till stora arkiv för att upptäcka nära-miss kloner. I detta dokument presenterar vi en tokenbaserad klondetektor, SourcererCC, som kan upptäcka både exakta och nära-miss kloner från stora interprojektförvar med hjälp av en standardarbetsplats. Det utnyttjar en optimerad inverterad-index för att snabbt fråga potentiella kloner av en given kodblock. Filtrera heuristik baserad på token beställning används för att avsevärt minska storleken på indexet, antalet code-block jämförelser som behövs för att upptäcka klonerna, samt antalet nödvändiga token-jämförare som behövs för att bedöma en potentiell klon. Vi utvärderar skalbarheten, genomförandetiden, återkallandet och precisionen i SourcererCC, och jämför den med fyra offentligt tillgängliga och toppmoderna verktyg. För att mäta minns, använder vi två senaste riktmärken: (1) ett stort riktmärke för verkliga kloner, BigCloneBench, och (2) en Mutation/Inject-baserad ram av tusentals finkorniga konstgjorda kloner. Vi finner att SourcererCC har både hög recall och precision, och kan skala till ett stort mellanprojektarkiv (25K-projekt, 250MLOC) med hjälp av en standardarbetsplats. IEEE/ACM 38:e IEEE:s internationella konferens om programvaruteknik
SourcererCC REF upptäcker nära dubbletter av kodblock med hjälp av en statisk påse-of-tokens strategi som är motståndskraftig mot mindre skillnader mellan kodblock.
SourcererCC: scaling code clone detection to big-code
{'venue': None, 'journal': 'Proceedings of the 38th International Conference on Software Engineering', 'mag_field_of_study': ['Computer Science']}