Hallo Kennt jemand Programm die automatisch den Sourcecode auf Stil, Namenkonventionen,... prüfen? hab schon mal in codechecker von abraxas reingeschaut, aber die Firma ist mir suspekt wegen der Website und der Mails. Schaut mal was ihr davon haltet: www.abxsoft.com Sagt mir eure offene Meinung. Sebastian
Das kann ich verstehen, daß Dir diese Website suspekt ist. O je. Das ist ja ziemlich grauenerregend. "We Support ALL operating Systems. (...) We support ALL compiler vendors." Darauf sollte man sie mal festnageln. Ich habe hier noch einen schönen alten 8-Bit-Rechner (6809) mit einem ebenso alten 8-Bit-Betriebssystem 'rumstehen, auf dem ein C-Compiler einer Firma namens Introl läuft ... Es juckt mich in den Fingern, aber jetzt ist erst mal Urlaub angesagt.
@Sebastian: Die Idee kam mir auch schon mal... Ist im Endeffekt ja nur ein Textparser mit ein paar regulären Ausdrücken ;-) Denke darüber nach, das mal in Perl zu realisieren. Bin da allerdings noch nicht soweit, ein derart komplexes Regelwerk aufzustellen, vorallem Namenskonventionen könnten schwer werden. Mein erster Ausflug in RegEx ist ein Programm, welches mir in meinem Quelltextdokument Tabulatoren durch Leerzeichen ersetzt.(Weil meine aktuelllen CodingConventions so lauten, ich aber gezwungen bin mit ner alten IDE zu arbeiten) Wer Interesse an o.g. Progrämmchen hat, einfach melden. Gruß Jörn
Hallo Also wenn Du ein Projekt in der Richtung machst wäre ich auch dran interessiert. Abraxas ist eben relativ günstig. Wenn man mal die Preise von QA-Systems gesehen hat, na ja. Bieten eben auch Service, ok kostet was, aber immerhin. Gibt einen codechecker der CCCC heisst, das Projet gibts bei sourceforge zum downlosd, momentan wird aber nicht dran weiter entwickelt, das schäft zur Zeit(hab den der das macht mal angemailt). Na ja, ich weiss nicht wie gut und schnell Codeckecker wirklich arbeitet hab nur die Demoversion. Ins Studio(VS.net) integriert(win 2000, 1000Mhz Lusche) gehts nicht so besonders schnell, aber auf ner neuen Maschine in ner Dosbox dürfte das gut gehen. Sebastian
Wie wärs mit indent und diff. Mit indent wird der Quellcode neu formatiert und mit diff kann der neue und der alte Quellcode verglichen werden. Abweichungen sind dann logischerweise Formatierungsfehler. Namenskonventionen können damit natürlich nicht geprüft werden.
Audits und Metrics ! Das sind die beiden Sachen, die du suchst. In der Firma haben wir Together Control-Center, das überprüft die und ändert die auf Nachfrage. (kostet 20000 Euro). Such aber mal nach Audits und Metrics, dann findest du vielleicht mehr!
Zum Vergleichen zwischen alter und neuer Version ist kompare besser als diff, weil es die unterschiedlichen Abschnitte unterschiedlich einfärbt - je nachdem ob gelöscht, hinzugefügt oder modifiziert wurde. Beim indent muß man aber darauf achten kein Assembler zu verwenden oder die betreffenden Dateien nicht zu bearbeiten. Ich hatte schon einige Header-Dateien mit Assembler-Makros, die der indent zerlegt hat, so daß sie nicht mehr compilierbar waren. Deshalb kann man keinen Linux-Kernel compilieren, wenn man den indent auf jede der Kernel-Source-Dateien angewendet hat ( find -name \*.[ch] -type f -print0 | xargs -0 indent ). Für C ist der Splint der Semantik-Checker überhaupt: http://lclint.cs.virginia.edu/ aber bisher gibt's noch keine C++-Version.
Ein kommerzielles Produkt ist PC-Lint (http://www.gimpel.com/html/pcl.htm), das überprüft auch C++. Als "shrouded source" gibt's das auch für andere OS, das heisst dann Flexelint (http://www.gimpel.com/html/flex.htm). Mit einem (GPL-) Zusatztool namens Aloa (http://pera-software.com/aloa.htm) scheint man wohl auch verschiedene Metriken aus den Lint-Ausgaben erzeugen zu können.
Übrigens reicht es häufig schon alle Warnungen des Copilers zu aktivieren. Zumindest der gcc findet so (Option -Wall) sehr viele Fehler/kritische Konstrukte. Allerding sollte man die Semantik-Checker/Fehler-/Warnmeldungen nicht überschätzen, da sie Logik-Fehler wie auch Design-Fehler nicht finden können. Ohne Grobentwurf, Feinentwurf usw., die auch von mehrenren Leuten überprüft wurden, und auch Prettyprinter wie indent, nützten Semantik-Checks nur wenig.
zum thema checker ein arbeitskollege hat einen "checker" für c geschrieben. hierfür hat er rund 200 manntage gebraucht. hat sich aufwendig in lex und yacc einarbeiten müssen,... "nur ein Textparser mit ein paar regulären Ausdrücken" ist es nunmal nicht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.