Uno strumento gratuito per verificare il codice sorgente C / C ++ rispetto a una serie di standard di codifica? [chiuso]


151

Sembra abbastanza facile trovare uno strumento simile per Java ( Checkstyle , JCSC ), ma non riesco a trovarne uno per C / C ++. Non sto cercando un analizzatore di codice statico simile a una lanugine, vorrei solo confrontare gli standard di codifica come denominazione delle variabili, maiuscole, spaziatura, identificazione, posizionamento delle parentesi e così via.


3
Se non trovi la risposta che desideri qui, considera questa domanda: stackoverflow.com/q/10819398/120163
Ira Baxter,

Risposte:


57

L'unico strumento che conosco è Vera . Non l'ho usato, però, quindi non posso commentare quanto sia praticabile. La demo sembra promettente.


L'ho provato ed è abbastanza semplice. Ma funziona!
Jader Dias,

7
L'ho provato ma sono rimasto deluso. Ha tokenizzato il codice C ++ ma ha un solo tipo di token per "identificatori", quindi non fa distinzione tra nomi di classi, variabili membro e variabili locali. Pertanto non è possibile trovare un modo per applicare convenzioni di denominazione diverse a diversi tipi di identificatore.
John W,

Vera non ha un set di regole molto completo - ma sono estendibili (in TCL)
fmuecke

2
"Estensibile" solo per compiti molto semplici. Poiché la comprensione di C ++ da parte di Vera è superficiale, qualsiasi "controllo di stile profondo" (considera una possibile regola [non sto suggerendo una buona]: per ogni allocazione, c'è una corrispondente collocazione nella stessa funzione) dovrà codificare la conoscenza C ++ appropriata, e questo è davvero molto difficile, il che significa che non accadrà.
Ira Baxter,

Collegamento fisso a Vera: bitbucket.org/verateam/vera
congusbongus

49

4
+1. Questo è molto bello, anche se ha uno stile molto rigoroso. Non è così facile estenderlo con le proprie regole come con vera ++.
fmuecke,

Ottimo se stai usando lo stile C ++ di Google :) +1
jkp

3
Presumo che questo sia ora chiamato cpplint. Può essere trovato su github.com/google/styleguide/tree/gh-pages/cpplint , il link sopra a c ++ lint è rotto.
Zitrax,

Solo per riferimento, per l'installazione, è possibile utilizzare "pip install cpplint". Quindi puoi semplicemente usare "cpplint file.cpp" o "cpplint --recursive". invece di "./cpplint.py" che è preferibilmente IMO. Almeno più facile che scaricare tramite github
Colin D,


8

Sono sicuro che questo potrebbe aiutare in qualche modo a controllare cxx . Anche questo strumento sembra essere abbastanza buono KWStyle È di Kitware, i ragazzi che sviluppano Cmake.


1
cxxchecker mi sembra molto morto ora.
Stefanct,

cxx checker è un link non funzionante.
Lupo,

7

Non è esattamente quello che chiedi, ma ho trovato più facile da solo tutti d'accordo su uno standard di codifica astyle in grado di generare e quindi automatizzare il processo.


1
È meglio chiarire che ArtisticStyle si concentra esclusivamente sulla formattazione, che ovviamente non è una brutta cosa :)
Wolf

6

Prova nsiqcppstyle . È un correttore di stile di codifica basato su Python per C / C ++. È facile estenderlo per aggiungere le tue regole.



2

Nel mio lavoro ho usato uno strumento, la sua suite di strumenti LDRA

Viene utilizzato per testare il codice c / c ++ ma può anche verificare gli standard di codifica come MISRA ecc.


1
Perché questo è modificato? Anche se LDRA è anche un analizzatore statico - qualcosa che la domanda non sta cercando - credo sia anche in grado di controllare il codice per le violazioni di uno standard di codifica.
Vitor Py,

4
LDRA costa circa quanto la tua auto media ... non la mia idea di gratis.
Lundin,


1

C'è cppcheck che è supportato anche da Hudson tramite il plugin con lo stesso nome.


4
cppcheck è uno strumento di analisi statica e non quello che la domanda sta cercando.
Vitor Py,

Forse questo è cambiato dal 2010: oggi Cppcheck include anche avvisi per problemi stilistici. Ma, bene, l'OP ha esplicitamente escluso gli analizzatori di codice statico.
Lupo,



-1

Attualmente sto lavorando a un progetto con un altro progetto per scrivere proprio uno strumento del genere. Ho esaminato altri strumenti di analisi del codice statico e ho deciso che avrei potuto fare di meglio.

Sfortunatamente, il progetto non è ancora pronto per essere utilizzato senza una conoscenza abbastanza intima del codice ( leggi: è buggy come l'inferno ). Tuttavia, ci stiamo muovendo abbastanza rapidamente e speriamo di avere una versione beta entro le prossime 8 settimane.

Il progetto è open source: puoi visitare la pagina del progetto e, se vuoi essere coinvolto, adoreremmo qualche input esterno.

Non ti annoierò con i dettagli - puoi visitare la pagina del progetto per questo, ma dirò una cosa: la maggior parte degli strumenti di analisi del codice statico sono volti a controllare il tuo codice per errori e non sono molto preoccupati di controllare le linee guida per la codifica. Abbiamo adottato un approccio più flessibile che ci consente di scrivere plugin per verificare sia le "regole della casa" sia i possibili bug.

Se desideri ulteriori informazioni, non esitare a contattarmi.

Saluti,


4
L'ultimo commit è stato nel giugno 2009. Sembra non essere più sviluppato.
Eponimo
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.