mikrocontroller.net

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


Autor: Sebastian W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jörn Bögeholz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sebastian W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Werner Hoch (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: David Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
genau indent oder besser noch astyle (astyle.sf.net)

Autor: Roman (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Rolf F. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rolf F. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: KoF (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.