Darmowe narzędzie do sprawdzania kodu źródłowego C / C ++ pod kątem zestawu standardów kodowania? [Zamknięte]


151

Wydaje się, że znalezienie takiego narzędzia dla Javy ( Checkstyle , JCSC ) jest dość łatwe , ale nie mogę znaleźć takiego dla C / C ++. Nie szukam statycznego analizatora kodu podobnego do kłaczków, chciałbym tylko sprawdzić standardy kodowania, takie jak nazewnictwo zmiennych, wielkie litery, odstępy, identyfikacja, umieszczenie nawiasów i tak dalej.


3
Jeśli nie znajdziesz tutaj odpowiedzi, której szukasz, rozważ to pytanie: stackoverflow.com/q/10819398/120163
Ira Baxter

Odpowiedzi:


57

Jedyne narzędzie, które znam, to Vera . Nie używałem go jednak, więc nie mogę komentować, jak to jest opłacalne. Demo wygląda obiecująco.


Przetestowałem to i jest to dość proste. Ale to działa!
Jader Dias

7
Próbowałem, ale byłem rozczarowany. To tokenizował kod C ++, ale ma tylko jeden typ tokenu dla „identyfikatorów”, więc nie rozróżnia między, powiedzmy, nazwami klas, zmiennymi składowymi i zmiennymi lokalnymi. Dlatego nie ma sposobu, aby wymusić różne konwencje nazewnictwa dla różnych typów identyfikatorów.
John W

Vera nie ma bardzo wszechstronnego zestawu reguł - ale można je rozszerzać (w TCL)
fmuecke

2
„Rozszerzalny” tylko w przypadku bardzo prostych zadań. Ponieważ Verera rozumie C ++ jest płytkie, każda „głęboka kontrola stylu” (rozważ możliwą regułę [nie sugeruję dobrej]: dla każdej alokacji jest odpowiadające jej zwolnienie w tej samej funkcji) będzie musiało zakodować odpowiednią wiedzę C ++, i to jest naprawdę bardzo trudne, co oznacza, że ​​tak się nie stanie.
Ira Baxter

Naprawiono link do Vera: bitbucket.org/verateam/vera
congusbongus

49

4
+1. To jest bardzo miłe - choć ma bardzo surowy styl. Nie jest to łatwe do rozszerzenia według własnych zasad, jak w przypadku vera ++.
fmuecke

Świetnie, jeśli używasz stylu Google C ++ :) +1
jkp

3
Zakładam, że to teraz nazywa się cpplint. Można go znaleźć pod adresem github.com/google/styleguide/tree/gh-pages/cpplint , powyższy link do c ++ lint jest uszkodzony.
Zitrax

Tylko w celach informacyjnych, aby zainstalować, możesz użyć "pip install cpplint". Następnie możesz po prostu użyć „cpplint file.cpp” lub „cpplint --recursive”. zamiast „./cpplint.py”, co jest dużo preferowanym IMO. Łatwiejsze niż pobieranie przez github przynajmniej
Colin D



7

Nie jest to dokładnie to, o co prosisz, ale stwierdziłem, że łatwiej jest po prostu wszyscy zgodzić się na standard kodowania, który może wygenerować, a następnie zautomatyzować proces.


1
Lepiej wyjaśnij, że ArtisticStyle skupia się wyłącznie na formatowaniu, co oczywiście nie jest złe :)
Wolf

6

Wypróbuj nsiqcppstyle . Jest to oparty na Pythonie program do sprawdzania stylu kodowania dla C / C ++. Można łatwo rozszerzyć, aby dodać własne zasady.



2

W swojej pracy korzystałem z narzędzia its zestawu narzędzi LDRA

Służy do testowania kodu c / c ++, ale może również sprawdzać standardy kodowania, takie jak MISRA itp.


1
Dlaczego to jest zmodyfikowane? Nawet jeśli LDRA jest również analizatorem statycznym - czymś, czego pytanie nie dotyczy - uważam, że jest również w stanie sprawdzić kod pod kątem naruszeń standardu kodowania.
Vitor Py,

4
LDRA kosztuje mniej więcej tyle, ile przeciętny samochód ... nie mój pomysł na darmowy.
Lundin

2

Sprawdź universalindentguina sourceforge.net .

ma wiele warcabów stylu dla C i możesz dostosować warcaby.


UniversalIndentGUI Posiada funkcję podglądu na żywo, może eksportować konfigurację i eksportować skrypt. Świetnie nadaje się do wypróbowywania różnych „wcięć”, takich jak wcięcie GNU, styl artystyczny i Uncrustify.
congusbongus

1

Istnieje cppcheck, który jest również obsługiwany przez Hudson za pośrednictwem wtyczki o tej samej nazwie.


4
cppcheck to narzędzie do analizy statycznej, a nie to, czego dotyczy pytanie.
Vitor Py

Być może zmieniło się to od 2010 roku: Dziś Cppcheck zawiera również ostrzeżenia dotyczące kwestii stylistycznych. Ale cóż, OP wyraźnie wykluczył statyczne analizatory kodu.
Wolf



-1

Obecnie pracuję nad projektem z innym projektem, aby napisać właśnie takie narzędzie. Przyjrzałem się innym narzędziom do statycznej analizy kodu i zdecydowałem, że mogę zrobić lepiej.

Niestety projekt nie jest jeszcze gotowy do użycia bez dość intymnej wiedzy o kodzie ( czytaj: jest błędny jak diabli ). Jednak posuwamy się dość szybko i mamy nadzieję, że wersja beta zostanie wydana w ciągu najbliższych 8 tygodni.

Projekt jest open source - możesz odwiedzić stronę projektu , a jeśli chcesz się zaangażować, chcielibyśmy uzyskać więcej informacji z zewnątrz.

Nie będę Cię zanudzać szczegółami - możesz odwiedzić stronę projektu , ale powiem jedno: większość narzędzi do analizy kodu statycznego ma na celu sprawdzenie kodu pod kątem błędów i nie zajmuje się sprawdzaniem wskazówek dotyczących kodowania. Przyjęliśmy bardziej elastyczne podejście, które pozwala nam pisać wtyczki sprawdzające zarówno „reguły domowe”, jak i możliwe błędy.

Jeśli chcesz uzyskać więcej informacji, nie wahaj się ze mną skontaktować.

Twoje zdrowie,


4
Ostatnie zatwierdzenie miało miejsce w czerwcu 2009 roku. Wydaje się, że nie jest już rozwijane.
Tytułowy
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.