Forum: PC-Programmierung C++ CodeChecking (Style,...)


von Sebastian W. (Gast)


Lesenswert?

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

von Rufus T. Firefly (Gast)


Lesenswert?

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.

von Jörn Bögeholz (Gast)


Lesenswert?

@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

von Sebastian W. (Gast)


Lesenswert?

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

von Werner Hoch (Gast)


Lesenswert?

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.

von David Otto (Gast)


Lesenswert?

genau indent oder besser noch astyle (astyle.sf.net)

von Roman (Gast)


Lesenswert?

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!

von Rolf F. (Gast)


Lesenswert?

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.

von Rufus T. Firefly (Gast)


Lesenswert?

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.

von Rolf F. (Gast)


Lesenswert?

Ü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.

von KoF (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.