 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
bernd_b03@yahoo.de Guest
|
Posted: Tue Jun 21, 2005 8:33 am Post subject: ist lint nützlich? |
|
|
hallo,
ich habe kürzlich etwas von dem Programm "Lint" gehört,das wohl
überprüft,ob der Code dem standadisierten C++ entspricht. Ist das
Tool nützich,wenn man den Visual C++ Kompiler hat,oder ist das eher
zusätzlicher Arbeitsaufwand,der sich nicht/kaum lohnt?
hat jemand Erfahrung damit?
Gruß,
Bernd
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Stefan Reuther Guest
|
Posted: Tue Jun 21, 2005 7:43 pm Post subject: Re: ist lint nützlich? |
|
|
[email]bernd_b03 (AT) yahoo (DOT) de[/email] wrote:
^^^ da fehlt ein bisschen was
| Quote: | ich habe kürzlich etwas von dem Programm "Lint" gehört,das wohl
überprüft,ob der Code dem standadisierten C++ entspricht.
|
Die klassische Aufgabe von "lint" ist vor allem die Überprüfung auf
häufige Programmierfehler oder suboptimalen Code, wie
- Variable vor Verwendung benutzt
- toter Code
- 'break' vor 'case' vergessen
- Parameter einer Funktion wird nicht benutzt
| Quote: | Ist das Tool nützich,wenn man den Visual C++ Kompiler hat, oder
ist das eher zusätzlicher Arbeitsaufwand,der sich nicht/kaum lohnt?
|
Viele der obigen Dinge kann auch ein aktueller Compiler erkennen. "lint"
entstand meines Wissens primär aufgrund der Tatsache, dass frühe
Computer nicht genug Kapazität hatten, einen C-Parser, Code-Generator,
Optimierer *und* dann noch Routinen zum Testen auf solcherlei Fehler
gleichzeitig auszuführen, so dass man Compilierung und Warnungs-Suche
getrennt hat. Heute ist das kein Problem mehr.
Der MSVC++ ist jedenfalls sehr geschwätzig, wenn du die Warnungen auf
Anschlag aufdrehst. Ich würde auf jeden Fall noch ein gcc-Derivat
hinzuziehen, der meiner Meinung nach sehr gute Warnungen produziert.
Außerdem kannst du die Warnungen fein dosieren (z.B. für ein paar
Aha-Erlebnisse einfach mal mit -Weffc++ compilieren).
Ansonsten weiß ich gar nicht, ob es überhaupt "lint" für C++ gibt? Es
ist unheimlich schwer, einen vollständigen C++-Parser zu bauen, ohne
gleich einen kompletten C++-Compiler zu bauen.
Stefan
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Jens Auer Guest
|
Posted: Tue Jun 21, 2005 8:59 pm Post subject: Re: ist lint nützlich? |
|
|
Am Dienstag, den 21.06.2005, 21:43 +0200 schrieb Stefan Reuther:
| Quote: | Die klassische Aufgabe von "lint" ist vor allem die Überprüfungauf
häufige Programmierfehler oder suboptimalen Code, wie
- Variable vor Verwendung benutzt
Soll doch bestimmt |
- Variable vor Initialisierung benutzt
heißen, oder?
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Daniel Mück Guest
|
Posted: Tue Jun 21, 2005 10:55 pm Post subject: Re: ist lint nützlich? |
|
|
[email]bernd_b03 (AT) yahoo (DOT) de[/email] wrote:
| Quote: | hallo,
ich habe kürzlich etwas von dem Programm "Lint" gehört,das wohl
überprüft,ob der Code dem standadisierten C++ entspricht. Ist das
Tool nützich,wenn man den Visual C++ Kompiler hat,oder ist das eher
zusätzlicher Arbeitsaufwand,der sich nicht/kaum lohnt?
|
Fragst du da etwa, ob sich Visual-C++ sich an die Standards hält?
Was willst du denn mit mit einer solchen Standardisierung erreichen? Nicht,
dass das etwas schlechtes wäre.
Daniel Mück
PS: Compiler wird mit C geschrieben...
--
Wer nichts weiß, muss alle glauben. Wer etwas weiß, muss vieles glauben. Wer
viel weiß, muss gar nichts glauben.
Sind wir so dumm, dass wir uns alles von den Medien vorkauen lassen müssen?
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Carsten Krüger Guest
|
Posted: Wed Jun 22, 2005 6:14 am Post subject: Re: ist lint nützlich? |
|
|
Am Tue, 21 Jun 2005 21:43:38 +0200 schrieb Stefan Reuther:
| Quote: | Viele der obigen Dinge kann auch ein aktueller Compiler erkennen.
|
rotfl
Du hast noch nie splint ( C ) oder gar pc-lint ( C & C++ www.gimpel.com)
eingesetzt oder?
Das Ding findet VIEL VIEL mehr als ein normaler Compiler (z.B. gcc -Wall)
Gruß Carsten
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Heinz Saathoff Guest
|
Posted: Wed Jun 22, 2005 7:08 am Post subject: Re: ist lint nützlich? |
|
|
Moin,
Stefan Reuther schrieb...
| Quote: |
Ansonsten weiß ich gar nicht, ob es überhaupt "lint" für C++ gibt? Es
ist unheimlich schwer, einen vollständigen C++-Parser zu bauen, ohne
gleich einen kompletten C++-Compiler zu bauen.
|
Es gibt von Gimpel (http://www.gimpel.com) ein PC-Lint für Windows (als
Binary) und ein FlexeLint für Unix und einige andere OSes, dort dann
wohl als Quelltext zum selber übersetzen. Sind aber beide
kostenpflichtig, so um $250 (?).
- Heinz
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Stefan Reuther Guest
|
Posted: Wed Jun 22, 2005 6:25 pm Post subject: Re: ist lint 翽 |
|
|
Jens Auer wrote:
| Quote: | Am Dienstag, den 21.06.2005, 21:43 +0200 schrieb Stefan Reuther:
Die klassische Aufgabe von "lint" ist vor allem die Überprüfung auf
häufige Programmierfehler oder suboptimalen Code, wie
- Variable vor Verwendung benutzt
Soll doch bestimmt
- Variable vor Initialisierung benutzt
heißen, oder?
|
ja.
Stefan
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Stefan Reuther Guest
|
Posted: Wed Jun 22, 2005 6:36 pm Post subject: Re: ist lint nützlich? |
|
|
Carsten Krüger wrote:
| Quote: | Am Tue, 21 Jun 2005 21:43:38 +0200 schrieb Stefan Reuther:
Viele der obigen Dinge kann auch ein aktueller Compiler erkennen.
rotfl
Du hast noch nie splint ( C ) oder gar pc-lint ( C & C++ www.gimpel.com)
eingesetzt oder?
Das Ding findet VIEL VIEL mehr als ein normaler Compiler (z.B. gcc -Wall)
|
Hab ich was anderes behauptet? Natürlich findet der Dinge, die gcc nicht
findet ("malloc(strlen(p+1))").
Allerdings sind viele Dinge typische C-Probleme. Sowas wie "free
vergessen" löst man in C++ mit RAII, "auf FILE* NULL zugegriffen" mit
Exceptions oder robusten Funktionen (wenn ifstream 'bad' ist, reagiert
er halt nicht auf >>, aber er stürzt nicht ab), etc.
Für C ist sowas auch noch sinnvoll und nützlich. Für C++ ist es aber
meiner Meinung nach technisch sogut wie nicht sinnvoll umzusetzen
(selbst, wenn ein C++-Parser keinen Code generiert, muss er die
zugrundeliegende Maschine genau kennen, um z.B. Templates wie
std::bitset<sizeof(my_struct)> handhaben zu können), und den Löwenanteil
der für C++ relevanten Warnungen deckt gcc ab.
Daher würde ich die Frage im Betreff beantworten mit "Wenn es da ist,
schadet es nicht, es einzusetzen. Aber es ist nicht (mehr) nützlich
genug, um eine $250-Anschaffung zu tätigen.".
Stefan
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
albrecht.fritzsche Guest
|
Posted: Sun Jul 10, 2005 9:16 am Post subject: Re: ist lint nützlich? |
|
|
Stefan Reuther wrote:
| Quote: | Für C ist sowas auch noch sinnvoll und nützlich. Für C++ ist es aber
meiner Meinung nach technisch sogut wie nicht sinnvoll umzusetzen
|
Dann schau' Dir einfach mal PClint an - das ist kein C-lint, sondern ein
Tool, das sehr gut mit C++-Code zurecht kommt. Ja, einige Warnungen
bekommst Du auch vom Compiler, aber PClint ist da wirklich auf einem
anderen (ie, besseren) Level.
Strong Type Checking, vielfaeltige Hilfe fuer scopeable Names, Multi-
pass Inter-function Value Tracking, ... plus dem IMHO besten Feature,
dass das Tool uninitialisierte Members erkennt.
struct Foo {
Foo() {}
bool m_bar;
};
Da dies ja mitunter einer der am schwersten zu findenden Runtime-Fehler
sein kann, habe ich mich schon oft geaergert, dass Compiler dies nicht
ausgeben. PClint hilft hier ungemein.
| Quote: | Daher würde ich die Frage im Betreff beantworten mit "Wenn es da ist,
schadet es nicht, es einzusetzen. Aber es ist nicht (mehr) nützlich
genug, um eine $250-Anschaffung zu tätigen.".
|
Das sehe ich anders - da dieses Tool mE zZt einzigartige Features
enthaelt, die schwer zu entdeckende Fehler (ebend nicht nur Compile
Errors) aufdecken, zahlt sich der Preis im professionellen Bereich
sehr schnell wieder aus.
Ali
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
albrecht.fritzsche Guest
|
Posted: Sun Jul 10, 2005 9:22 am Post subject: Re: ist lint nützlich? |
|
|
[email]bernd_b03 (AT) yahoo (DOT) de[/email] wrote:
| Quote: | hallo,
ich habe kürzlich etwas von dem Programm "Lint" gehört,das wohl
überprüft,ob der Code dem standadisierten C++ entspricht. Ist das
Tool nützich,wenn man den Visual C++ Kompiler hat,oder ist das eher
zusätzlicher Arbeitsaufwand,der sich nicht/kaum lohnt?
hat jemand Erfahrung damit?
|
Wenn wir hier beide von PClint(*) sprechen - das ist ein lohnendes Tool,
das Dir per Default Tausende(**) von Code-Verbesserungen gibt. Zudem
integriert es sich sehr gut in VC++, indem es Project Files lesen
und die darin enthaltenen Files checken kann.
Das ganze kostet so um die 250$, die sich aber mE schnell investieren.
Als zB "nightly check" sehr wertvoll.
Ali
(*) www.gimpel.com
(**) Daher wird empfohlen, alle Meldungen ab- und nur die gewuenschten
Meldungen zuzuschalten - ausser fuer evtl. Toy-Projekte.
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|