Is there a way to measure duplicate code? [closed]
Asked Answered
G

3

37

I'm looking for a code duplication tool that is language agnostic. It's easy to find language specific code duplication tools (for Java, C, PHP, ...), but I'd like to run some code duplication analysis on a templates in a custom syntax.

I don't care about advanced parsing of the syntax, just straight line based raw string comparison is fine. Whitespace insensitive matching would be a plus, but not required. (It's not that hard to normalize/eliminate whitespace myself.)

Does anybody know a tool that can be (mis)used for something like this?

Geophysics answered 15/11, 2012 at 13:35 Comment(3)
You get poorer clone detection if the detector knows nothing about the language syntax. Most clones aren't identical text; they are copy-paste-edited text, so to find them accurately you need to match similar but not identical code fragments. There are syntax-aware clone detectors, and to lesser or greater degree, they can be configured to know the precise langauge syntax.Jadda
possible duplicate of Tips to show similarities in filesTutty
I really think you'll do best focusing on logic duplication rather than raw string duplication. Some languages may be boiler-platey but that kind of duplication doesn't duplicate bugs. It's when you have the same, non-trivial logic in two places of the system that causes an unnecessary maintenance burden.Bianchi
C
21

Have a look Simian, you can use it for Java, C#, C, C++, COBOL, Ruby, JSP, ASP, HTML, XML, Visual Basic, Groovy source code and even plain text files.

Also, a similar question here.

Cerelia answered 15/11, 2012 at 13:40 Comment(0)
B
5

You can also take a look at Sonar http://www.sonarsource.org/

Blintze answered 10/6, 2013 at 14:38 Comment(1)
Which feature of sonar cube could be used to find code duplication ? Could you please point us to it ?Chervil
D
1

Take a look at this one https://siderlabs.com/

At this moment it support C, C++, Cuda and others Python, PHP, Java, Javascript coming soon

Deadbeat answered 6/11, 2020 at 6:47 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.