11

Poszukuję narzędzia do powielania kodu, które jest agnostyczne. Łatwo jest znaleźć specyficzne dla danego języka narzędzia do powielania kodu (dla języka Java, C, PHP, ...), ale chciałbym przeprowadzić analizę fragmentacji kodu na szablonach w niestandardowej składni.Narzędzie do generowania duplikatów kodu ogólnego

Nie przejmuję się zaawansowanym analizowaniem składni, tylko proste porównanie ciągłego łańcucha jest w porządku. Nieczułe na dopasowanie spacja byłoby plusem, ale nie jest wymagane. (Nie jest trudno normalizować/eliminować białe znaki).

Czy ktoś zna narzędzie, które może być (nie) użyte do czegoś takiego?

Dzięki.

+0

dostać gorsze wykrywania klon gdy czujka nie wie nic na temat składni języka. Większość klonów nie jest identycznym tekstem; są one kopiowane-wklejane * edytowane * tekst, więc aby je dokładnie znaleźć, musisz dopasować * podobne * ale nie identyczne fragmenty kodu. Istnieją detektory klonów posiadające wiedzę o składni iw mniejszym lub większym stopniu mogą być skonfigurowane tak, aby znały dokładną składnię języka. –

+0

możliwy duplikat [Wskazówki do pokazania podobieństw w plikach] (http://stackoverflow.com/questions/1536643/tips-to-show-similarities-in-files) –

+0

Naprawdę myślę, że najlepiej zrobisz, koncentrując się na powielaniu logiki zamiast ciągłego duplikowania ciągów. Niektóre języki mogą być bliskie kotłowni, ale taki rodzaj duplikowania nie powoduje powielania błędów. Dzieje się tak, gdy masz tę samą, nietrywialną logikę w dwóch miejscach systemu, która powoduje niepotrzebne obciążenie konserwacyjne. –

Odpowiedz

8

Spójrz na Simian, możesz go używać do Java, C#, C, C++, COBOL, Ruby, JSP, ASP, HTML, XML, Visual Basic, Groovy kodu źródłowego, a nawet zwykłego pliku tekstowego.

Również podobne pytanie here.

+0

Simian wydaje się być tym, czego szukam, dzięki. – Stefaan

Powiązane problemy