Parallel Lint

on Jun 22, 09 • by Alen Zukich • with 2 Comments

Interesting article on static analysis tools to help find concurrency issues.  These so called “Parallel Lint” tools are specific to finding these types of issues.  Overall there are some great discussions on certain tools, and it is always nice when Klocwork gets mentioned.  But my problem is with...

Home » Static Analysis » Parallel Lint

Interesting article on static analysis tools to help find concurrency issues.  These so called “Parallel Lint” tools are specific to finding these types of issues.  Overall there are some great discussions on certain tools, and it is always nice when Klocwork gets mentioned.  But my problem is with the categorization of these tools.  It always makes me feel sick every time someone puts Klocwork in the same category of “powerful static analysis” with JLint, C++Test, FXCop and my favorite PC-Lint.

This article goes deeper into PC-Lint and what they are doing with deadlocks.  The author highlights a very important point here:

“Like compilers, static analyzers operate each .cpp file separately. And that’s why if f() function is called in parallel mode in file A from file B, we cannot know this when analyzing file B. Of course there are static analyzers which analyze the whole set of files at once but it is a very difficult task. At least, PC-Lint operates each file separately.”

This is a point I feel keeps getting lost with modern static analysis tools today.  Forget the Lint of the past or these other tools, their focus is on file by file analysis.  These old tools are doing simple grep type analysis.  Sometimes where you’re lucky you get a little bit of control flow with a dash of data flow analysis.  But plainly they are missing the deep inter-procedural analysis and techniques that are used with modern static analysis tools today.  I’m hoping the message is getting out there that static source code analysis is far far beyond Lint and is providing the context you never had before.

Related Posts

2 Responses to Parallel Lint

  1. Anneliese Gimpel says:

    It seems that Andrey Karpov is not as familiar with PC-lint as he may think.

    Version 1.0 of PC-lint was first released in May of 1985 and at that time it supported inter-module checking of C source code. The current version of PC-lint is 9.0 and it provides inter-module checking of C and C++ code.

    PC-lint has been doing inter-module checking for the past 25 years and Mr. Karpov is correct when he states that “it is a very difficult task” – the developers at Gimpel Software are very aware of the difficulties and have been dealing with them for 25 years.

  2. Michael Donohue says:

    The modern generation of static analysis tools have not done a good job of distinguishing themselves from the first generation with language. The term ‘static analysis’ is used commonly to mean any type of tool that looks at source code, no matter how simple the analysis is, with the result that ‘grep’ is a static analysis tool.

    I had hoped that Coverity, Klocwork, et al. would adopt a different term, like ‘semantic analysis’ which conveys the depth of understanding that their tools have of the software. Since grep style tools have no semantic understanding of the code, they would be dropped from such a list.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Scroll to top